天天看點

[python] lantern通路中文維基百科及selenium爬取維基百科語料

希望文章對你有所幫助,尤其是web爬蟲初學者和nlp相關同學。當然你也能,懂的~

目錄:

0 前言

1 lantern通路中文維基百科

2 selenium調用chrome自動通路維基百科

3 selenium爬取維基百科資訊

代碼及軟體下載下傳位址:

<a target="_blank" href="http://download.csdn.net/detail/eastmount/9422875">http://download.csdn.net/detail/eastmount/9422875</a>

在對海量知識挖掘和自然語言處理(natural language processing,簡稱nlp)中會大量涉及到三大百科的語料問題,尤其是中文漢字語料問題,包括:百度百科、互動百科和維基百科。其應用涉及命名實體(named entity,簡稱ne)消歧、實體對齊、雙語機器翻譯、推薦系統、情感分析、知識圖譜等領域。

其中三大百科準确率方面是維基百科&gt;互動百科&gt;百度百科;中文涉及實體内容是百度百科&gt;互動百科&gt;維基百科。如下圖所示,維基百科wikipedia頁面通常包括:title(标題)、description(摘要描述)、infobox(消息盒)、categories(實體類别)、crosslingual

links(跨語言連結)等。

[python] lantern通路中文維基百科及selenium爬取維基百科語料

但問題來了:中文維基百科總是被屏蔽,第一個問題就是如何通路中文維基百科呢?

[python] lantern通路中文維基百科及selenium爬取維基百科語料

lantern:一款免費強大的帆樯軟體,譯為“燈籠”。點選exe即可運作,非常巧小的一款軟體;據說是google公司推出的,但确實良心制作。 

[python] lantern通路中文維基百科及selenium爬取維基百科語料
[python] lantern通路中文維基百科及selenium爬取維基百科語料

同時你可以通路youtube和維基百科了,就是這麼簡單~

[python] lantern通路中文維基百科及selenium爬取維基百科語料
[python] lantern通路中文維基百科及selenium爬取維基百科語料

selenium調用firefox浏覽器直接設定代碼"driver = webdriver.firefox()"即可,但是調用chrome需要下載下傳chromedriver.exe驅動。同時放置于chrome安裝目錄下:

我的目錄:c:\program files (x86)\google\chrome\application,如果你報錯:

[python] lantern通路中文維基百科及selenium爬取維基百科語料

同時添加該路徑到環境變量path中:

[python] lantern通路中文維基百科及selenium爬取維基百科語料

下面簡單四句代碼即可調用浏覽器自動通路維基百科頁面:

爬取的方法與前面百度百科的方法類似,現在txt中定義實體名稱,即需要爬取的網頁名稱,再去到具體頁面爬取内容。這裡需要講述一個方法:

                                           https://zh.wikipedia.org/wiki/阿富汗

可以通路中國頁面,同樣該方法适用于互動百科,即:url+檔案中讀取實體名稱

[python] lantern通路中文維基百科及selenium爬取維基百科語料

當然百度百科,你隻需要擷取輸入框的按鈕資訊,然後輸入讀取檔案名稱,自動回車或點選即可。其中你可能會遇到一些存在歧義的頁面,再處理下即可。同時維基百科和互動百科中存在分類頁面,歸納了自己想要的内容,也比較友善。

最後是代碼及運作結果:

運作結果如下圖,共爬取了每個實體的10段資訊,而百度摘要會有id,可隻爬取摘要。

[python] lantern通路中文維基百科及selenium爬取維基百科語料

同樣,你也可以通過下面這部分代碼爬取infobox資訊,首先給出html源碼标簽:

[python] lantern通路中文維基百科及selenium爬取維基百科語料

核心代碼:

elem_value = driver.find_elements_by_xpath("//table[@class='infobox']")

具體代碼如下:

運作結果如下圖所示:

[python] lantern通路中文維基百科及selenium爬取維基百科語料

最後希望文章對你有所幫助,還是那句話:如果剛好你遇到這個問題,就會受益匪淺;否則感覺沒什麼技術含量,不過确實也挺簡單的,但是燈籠還是非常強大的。一月份終于要結束了,不知道多少個熬夜到早上10點,回家好好享受下生活吧~