2017-07-05 71 views
0

我正在使用MAC OS X 10.12系統。 我從http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2011/51/06/81/510681114.html 下載了一張表。 該表使用GB2312編碼,但是,我使用GBK保存表。代碼的主要部分是這樣的:但是從html下載中文表格後出現奇怪的字符

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,也許這個表,可以與中國正確顯示,但對於其他表,它仍然會顯示這些惱人的奇怪的字符。

+0

如果數據與不同的編碼編碼,那麼你需要單獨處理的。您可以手動編碼(爲每個源使用對的列表),或者您可以考慮進行簡單的測試,以確定爲每個表選擇哪種編碼。 – lenz

回答

0

我剛剛得到了靈感從這裏 http://zzi.io/?p=275 例如

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

結果是

代碼 

所以這個問題部分解決。

相關問題