2016-03-25 21 views
0

Şu anda bir Çince karakterin yanı sıra standart olmayan harfler atmaya çalışıyorum. Sonuçta, Mechanize gibi Çince karakter veya standart olmayan harf atlandı.Bir web sitesinden Çince karakterleri almak için Mechanize kullanmıyor

Kodum:

import mechanize 
import re 

br = mechanize.Browser() 
br.addheaders = [('User-agent', 'Mozilla/5.0')] 
br.set_handle_robots(False) 

html = br.open('http://hanzidb.org/character-list/by-frequency') 

html = html.read().lower() 
html = unicode(html, errors='ignore') 

#Only get the data between <td>...</dr> 
pattern2 = re.compile(r'<td>(.*?)</td>', re.MULTILINE) 
match_description2 = re.findall(pattern2, html) 

data = [] 

#Collect the content of the table 
for desc in match_description2: 
    data.append(desc) 
    print desc 

sonuç I (örnek) elde edilmelidir: Ben alıyorum sonucu Karşı

<tr><td><a href="/character/是">是</a></td><td><span style="color:#000099;">shì</span></td><td><span class="smmr">indeed, yes, right; to be; demonstrative pronoun, this, that</span></td><td><a href="/character/日" title="Kangxi radical 72">日</a>&nbsp;72.5</td><td>9</td><td>1</td><td>1479</td></td><td>3</td></tr> 

:

<td><a href="/character/"></a></td><td><span style="color:#000099;">sh</span></td><td><span class="smmr">indeed, yes, right; to be; demonstrative pronoun, this, that</span></td><td><a href="/character/" title="kangxi radical 72"></a>&nbsp;72.5</td><td>9</td><td>1</td><td>1479</td></td><td>3</td> 

Herhangi bir Yardım takdir ve Gerekirse daha fazla bilgi sağlayabilirim.

+0

Lütfen HTML'yi ayrıştırmak için 'beautifulsoup4' kullanın. HTML için normal ifadeler kullanmak [istenmeyen sonuçlara yol açabilir] (http://stackoverflow.com/a/1732454/918959) –

cevap

1

Çizgiyi html = unicode(html, errors='ignore')

kaldırmalısınız LANG hakkında terminali çevre UTF-8

olmak ve kodunuzu RUN gerekir!

+0

Üzgünüm, tüm kodlarımın sadece ilgili bit olduğunu açıklamamıştım. Ayrıca, bu değişiklik işe yaradı, bir ton teşekkürler! –

+0

Sorun değil ve hoş geldiniz. – han058