从实例入手学会BeautifulSoup的常用方法
場景
Beautiful Soup是一個強大的解析工具,它能根據(jù)網(wǎng)頁的結構和屬性等來解析網(wǎng)頁。
實現(xiàn)
導入庫
from bs4 import BeautifulSoup as BS解析器
BeautifulSoup在解析時實際上依賴解析器,它除了支持Prthon標準庫中的HTML解析器之外,還支持一些第三方解析器,比如lxml。
Beautiful Soup支持的解析器
1.Python標準庫?
Python的內(nèi)置標準庫、執(zhí)行速度適中、文檔容錯能力強?
Python 2.7.3及Python 3.2.2之前的版本文檔容錯能力差
2.xml HTML解析器?
BeautifulSoup(markup, “l(fā)xml”)?速度快、文檔容錯能力強?需要安裝C語言庫
3.lxml
XML解析器?
BeautifulSoup(markup, “xml”)?速度快、唯一支持XML的解析器?需要安裝C語言庫
4.html5lib
?BeautifulSoup(markup, “html5lib”)?最好的容錯性、以瀏覽器的方式解析文檔、生成HTML5格式的文檔?速度慢、不依賴外部擴展
lxml使用
比如這里我們使用lxml:
soup = BS(text,'lxml')這里BS是BeautifulSoup的別名,因為前面我們已經(jīng):
from bs4 import BeautifulSoup as BS獲取匹配的第一個標簽
find方法可以獲取匹配的第一個標簽
以爬取情話為例
網(wǎng)址:
https://www.duanwenxue.com/huayu/tianyanmiyu/list_69.html
打開F12進行檢查,發(fā)現(xiàn)
情話內(nèi)容在第一個class為list-short-article的div里面,所以我們可以這樣使用
soup = BS(text,'lxml')arttis = soup.find('div', class_='list-short-article')獲取匹配的所有標簽???
可以使用find_all方法
比如這里的情話內(nèi)容都在a標簽里,且其target屬性為blank
所以我們可以這樣獲取:
soup = BS(text,'lxml')arttis = soup.find('div', class_='list-short-article').find_all('a', {'target': "_blank"})更多方法
更所方法使用請參照BeautifulSoup文檔
https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的从实例入手学会BeautifulSoup的常用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫进行request请求时User-A
- 下一篇: Pythont通过request以及Be