小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python3 爬蟲(七)

 imelee 2016-12-06

Beautiful Soup 是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫.它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.Beautiful Soup會(huì)幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間。
Beautiful Soup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,還支持一些第三方的解析器,其中一個(gè)是 lxml 。
另一個(gè)可供選擇的解析器是純Python實(shí)現(xiàn)的 html5lib , html5lib的解析方式與瀏覽器相同。

Windows平臺(tái) + Python3.5


安裝BeautifulSoup4

方法一:打開cmd,運(yùn)行pip install BeautifulSoup4

如上圖所示,由于我已經(jīng)安裝過了??梢允褂?--upgrade來升級為最新版本。

方法二:去官網(wǎng)BeautifulSoup4源碼下載 -- 戳我吧!下載源碼,編譯運(yùn)行。



至此,便安裝完畢。
驗(yàn)證成功,編譯一個(gè).py文件,輸入from bs4 import BeautifulSoup4,不會(huì)報(bào)錯(cuò)即代表安裝成功。

安裝html5lib

第二步,我們安裝網(wǎng)頁文件解析器htm5lib,只需直接運(yùn)行pip install html5lib即可:


安裝lxml

在Windows下,安裝lxml費(fèi)了一點(diǎn)勁兒,不能直接通過命令成功安裝。我們需要去官方網(wǎng)站下載與平臺(tái)完全一致的版本,手動(dòng)安裝。
首先,查看我們的平臺(tái)依賴的工具版本:


然后,去官網(wǎng)下載對應(yīng)的.whl文件。lxml 官方下載鏈接,請猛戳我~~~
Ctrl + F,輸入lxml,找到下面這段:
Lxml, a binding for the libxml2 and libxslt libraries.
lxml?3.4.4?cp27?none?win32.whl
lxml?3.4.4?cp27?none?win_amd64.whl
lxml?3.4.4?cp33?none?win32.whl
lxml?3.4.4?cp33?none?win_amd64.whl
lxml?3.4.4?cp34?none?win32.whl
lxml?3.4.4?cp34?none?win_amd64.whl
lxml?3.4.4?cp35?none?win32.whl
lxml?3.4.4?cp35?none?win_amd64.whl
cp后面是Python的版本號,27表示2.7,根據(jù)你的Python版本選擇下載。

最后進(jìn)行安裝,打開cmd,先運(yùn)行pip install wheel安裝wheel工具,做好準(zhǔn)備工作。
接著運(yùn)行pip install *.whl文件,我的對應(yīng)版本為lxml-3.6.0-cp35-cp35m-win_amd64.whl即可成功安裝lxml解析器。


至此,三個(gè)工具都安裝完畢。
對于Linux平臺(tái)下,安裝就很簡單了,直接利用三個(gè)命令即可完成:
  • pip install BeautifulSoup4 或 easy_install BeautifulSoup4
  • pip install html5lib
  • pip install lxml

使用BeautifulSoup

我們編輯一段html文檔,利用BeautifulSoup庫進(jìn)行解析:
[python] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. html = """ 
  2. <html><head><title>The Dormouse's story</title></head> 
  3. <body> 
  4. <p class="title"><b>The Dormouse's story</b></p> 
  5.  
  6. <p class="story">Once upon a time there were three little sisters; and their names were 
  7. <a href="http:///elsie" class="sister" id="link1">Elsie</a>, 
  8. <a href="http:///lacie" class="sister" id="link2">Lacie</a> and 
  9. <a href="http:///tillie" class="sister" id="link3">Tillie</a>; 
  10. and they lived at the bottom of a well.</p> 
  11.  
  12. <p class="story">...</p> 
  13. """  
  14.   
  15. from bs4 import BeautifulSoup  
  16.   
  17. #添加一個(gè)解析器  
  18. soup = BeautifulSoup(html,'html5lib')  
  19. print(soup.title)  
  20. print(soup.title.name)  
  21. print(soup.title.text)  
  22. print(soup.body)  
  23.   
  24. #從文檔中找到所有<a>標(biāo)簽的內(nèi)容  
  25. for link in soup.find_all('a'):  
  26.     print(link.get('href'))  
  27.   
  28.   
  29. #從文檔中找到所有文字內(nèi)容  
  30. print(soup.get_text())  
注意:
在聲明BeautifulSoup對象的時(shí)候要明確解析器 soup = BeautifulSoup(html,'html5lib'),否則寫為 soup = BeautifulSoup(html) 會(huì)有警告。



運(yùn)行上述代碼:

我們發(fā)現(xiàn),BeautifulSoup可以十分方便的提取Html的結(jié)構(gòu)化數(shù)據(jù)。這就為我們解析網(wǎng)頁文件內(nèi)容,爬取目標(biāo)元素提供了極大的幫助。

這只是一個(gè)小小的例子,BeautifulSoup庫的功能十分強(qiáng)大,趕緊去官方文檔學(xué)習(xí)吧~

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多