Beautiful Soup是一个强大的解析工具,它能根据网页的结构和属性等来解析网页。
from bs4 import BeautifulSoup as BS
BeautifulSoup在解析时实际上依赖解析器,它除了支持Prthon标准库中的HTML解析器之外,还支持一些第三方解析器,比如lxml。
1.Python标准库
BeautifulSoup(markup, “html.parser”)
Python的内置标准库、执行速度适中、文档容错能力强
Python 2.7.3及Python 3.2.2之前的版本文档容错能力差
2.xml HTML解析器
BeautifulSoup(markup, “lxml”)
速度快、文档容错能力强 需要安装C语言库
3.lxml
XML解析器
BeautifulSoup(markup, “xml”)
速度快、唯一支持XML的解析器 需要安装C语言库
4.html5lib
BeautifulSoup(markup, “html5lib”)
最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 速度慢、不依赖外部扩展
比如这里我们使用lxml:
soup = BS(text,'lxml')
这里BS是BeautifulSoup的别名,因为前面我们已经:
from bs4 import BeautifulSoup as BS
find方法可以获取匹配的第一个标签
以爬取情话为例
网址:
https://www.duanwenxue.com/huayu/tianyanmiyu/list_69.html
打开F12进行检查,发现
情话内容在第一个class为list-short-article的div里面,所以我们可以这样使用
soup = BS(text,'lxml')
arttis = soup.find('div', class_='list-short-article')
可以使用find_all方法
比如这里的情话内容都在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/