继续码解析库,BeautifulSoup简称BS是另一个功能强大的解析库,也是笔者比较喜欢用的(虽然大多数网页爬取用CSS或者XPath更方便)
解析库之BeautifulSoup
1,推荐pip安装:pip install beautifulsoup4
2,解析器支持:‘html.parser’,,lxml’,‘xml’,‘html5lib’推荐速度较快容错又强的’lxml’。
3,基本用法:
html = """
... ...
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html , 'lxml')
print(soup.prettify())
4,节点选择:
.节点名称 #直接获取节点
.string #获取节点文本
.name #获取节点名称
.attrs #获取节点属性
.节点名称['属性名'] #获取属性值
.contents #获取直接子节点
.descendants #获取所有子孙节点
.parent #获取直接父节点
.parents #获取所有祖先节点
.next_sibling #获取下一个直接节点
.previous_sibling #获取上一个直接节点
.next_siblings #获取所有后面的兄弟节点
.previous_siblings #获取所有前面的兄弟节点
5,方法选择器:
find_all(name , attrs , recursive , text , **kwargs)
'''
name :根据名称查询元素
attrs :根据属性查询元素
text :根据文本查询元素
**kwargs :等于1时(等价于find())返回第一个匹配元素,否则返回列表
'''
BeautifulSoup还支持CSS选择器,详情参考:CSS参考使用CSS选择器只需要调用select()方法,传入相应的CSS选择器即可。
实例演示代码地址:Github-xylover