从html下载中文表后的奇怪字符

时间:2017-07-05 08:42:02

标签: python-2.7 encoding utf-8 gb2312 gbk

我正在使用MAC OS X 10.12系统。 我从http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2011/51/06/81/510681114.html下载了一个表格 。 该表使用GB2312编码,但是,我使用GBK来保存表。代码的主要部分如下:

req = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' })
page = urllib2.urlopen(req ).read()
tables=BeautifulSoup(page,'html.parser',
parse_only=SoupStrainer(),from_encoding='gbk')
f = open(path, 'w')
for row in tables.findAll("tr"):
    cells = row.findAll("td")
    write_to_file = cells[0].find(text=True) + "," + cells[1].find(text=True) 
+ "\n"
    write_to_unicode = write_to_file.encode('utf-8')
    f.write(write_to_unicode)
f.close()

我为许多其他类似的表重复了这种代码模式,但是,对于某些链接(比如我在这里发布的链接),下载的中文表格都带有奇怪的字符。这是一个例子。

´úÂë,³ÇÏç·ÖÀà,Ãû³Æ
510681114001,121,½ÖµÀ¾ÓÃñίԱ»á
510681114201,220,ðÀÃù´å´åÃñίԱ»á
510681114202,220,°×º×´å´åÃñίԱ»á
510681114203,122,Áâ½Ç´å´åÃñίԱ»á
510681114204,122,»Æ¼Òµê´å´åÃñίԱ»á
510681114205,122,»¨ÌÁ´å´åÃñίԱ»á
510681114206,220,ÔÂÍå´å´åÃñίԱ»á
510681114207,122,°×ÔÆ´å´åÃñίԱ»á
510681114208,220,Á¹Ë®¾®´å´åÃñίԱ»á
510681114209,122,Çàþh´å´åÃñίԱ»á

如何将此表格转换为真正的中文,或者我该如何下载中文表格呢?

问题是,如果我选择使用GB2312,也许对于这个表,它可以正确显示中文,但对于其他表,它仍然会显示这些恼人的奇怪字符。

1 个答案:

答案 0 :(得分:0)

我从这里得到灵感 http://zzi.io/?p=275 例如

a=u"´úÂë"
print a.encode('iso-8859-1').decode('gbk')

结果是

代码

所以这个问题已经部分解决了。