BeautifulSoup4
和lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML
Beautiful用来解析HTML比较简单,API人性化,支持CSS选择器,Python标准库中的HTML解析器,也支持lxml的xml解析器,Beautiful Soup 3已经停止开发,推荐使用Beautiful Soup 4,使用pip 安装:pip install beautifulsoup4
bs4在解析时依赖解析器:
Python标准库 BeautifulSoup(markup,‘html.parser’) Python内置标准库,执行速度适中,容错能力强
lxml HTML 解析器 BeautifulSoup(markup,‘lxml’) 速度快、文档容错能力强
示例
导入bs4库
from bs4 import BeautifulSoup
创建 Beautiful Soup 对象
soup = BeautifulSoup
打开本地HTML文件都方式来创建对象
soup = BeautifulSoup(open('index.html))
格式化输出soup对象的内容
print(soup.prettify())
findall()方法
name | 可以根据节点名查询 |
attrs | 可以根据节点属性查询 |
text | 用来匹配节点文本 |
获取属性 a.attrs['id]或者a['id]
获取文本 a.get_text()或者a.string
Pyquery解析库
pyquery库是 jQuery 的 Python 实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好
安装:
pip3 install pyquery
注意:pyquery依赖于lxml要先安装lxml,否则提示失败
pip3 install lxml
初始化:
有四种方法可进行初始化:可以通过传入字符串,lxml,文件或者url来使用PyQuery
python代码
其他操作
添加class | addClass(value) |
判断是否包含指定的class返回true或flase | .hasClass(value) |
获取子元素 | .children() |
获取父元素 | .parends() |
获取下一个元素 | .next() |
获取后面全部元素块 | .nextAll() |
获取所有不匹配该选择器的元素 | .not_(sellector) |