2016-03-25 16 views
0

現在、非標準文字と同様に中国語もスクラップしようとしています。結果では、Mechanizeはちょうど漢字か非標準文字をスキップしたようです。Mechanizeを使用してウェブサイトから中国語文字を取得すると、何も返されません。

マイコード:

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 

結果、私は(例)取得する必要があります:私は取得しています結果対

<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> 

が、私は任意の助けに感謝し、必要に応じて、私はより多くの情報を提供することができます。

+0

HTMLを解析する代わりに 'beautifulsoup4'を使用してください。 HTMLの正規表現を使用すると、[望ましくない結果になる](http://stackoverflow.com/a/1732454/918959) –

答えて

1

あなたがラインhtml = unicode(html, errors='ignore')

を削除する必要がありますLANGについてのあなたの端末環境がUTF-8

になると、あなたのコードを実行する必要があります!

+0

申し訳ありません。また、その変更は働きました、ありがとう! –

+0

問題はありません。 – han058

関連する問題