2016-06-10 48 views
0

具體文字我想解析URL地址以HTML看起來像這樣:Python 2.7版:在搜索韓國

<tr> 
    <th scope="row">채용부문</th> 
    <td>서비스 개발</td> 
</tr> 

(這只是一個例子,還有更多的韓國混有英語和HTML標籤等)

而且在找到채용부문所有網址中,<th>標籤(同一個詞),我想提取서비스개발(這個詞是不同的無處不在),並說,它存儲在數據庫中。

這樣做的最好方法是什麼?

我沒有運氣,使用Code Table Korean Hangul的代碼,但我想我只是做錯了什麼。例如:使用字符串'\uC9C0'(代碼爲지)作爲關鍵字並沒有幫助我找到字地址。

任何幫助表示讚賞。

回答

0

我想你遇到字符編碼問題。我不懂韓文。但我可以給你一箇中國的例子,也許你可以從中學習。

的1.txt:

<tr> 
    <th scope="row">我們</th> 
    <td>我們是冠軍</td> 
</tr> 

a.py:

# coding=utf-8 
with open("1.txt") as f: 
    for line in f: 
     can_line = line.decode('gbk') # line 1 
     pos = can_line.find(u'冠軍') # line 2 
     if pos >= 0: 
      print line 

上面的代碼將輸出:

<td>我們是冠軍</td> 

但是,如果我們沒有一號線,也不要在你想在第二行找到的關鍵字前加'u',你什麼也得不到。

這裏你必須知道python內部將使用unicode來存儲東西,line1會將行(使用gbk編碼)更改爲unicode,而line2也會將'冠軍'(使用utf-8編碼)更改爲unicode,所以兩個unicode可以比較,然後找到作品。

我不確定它是如何在韓國語言中工作的,但我認爲東亞語言也許類似,只是FYI。

+0

嘿,Atline!除了當我試圖'urllib.urlopen'而不是打開一個.txt文件時,它對於韓語來說非常完美,我一直都得到'UnicodeDecodeError'。你知道,如何解決這個問題? – 06153

+0

是的,在第1行中,我們使用gbk,因爲該文件是gbk編碼。如果來自網絡,您必須知道網頁的編碼。如果你使用decode('gbk'),但是html不是'gbk'編碼,它會報告類似於UnicodeDecodeError的內容:'gbk'編解碼器不能解碼位置15-16中的字節:非法多字節序列。這意味着網頁是不是這樣的編碼,你必須找到編碼,使用Firefox,右鍵單擊,查看網頁信息,你可能會發現網頁的編碼。 – lagom