python爬虫解析库BeautifulSoup速查
为了方便使用,将 BeautifulSoup 库常用的接口进行总结。
总结内容来源:《python3 网络爬虫开发实战》崔庆才
导入与解析
1 | from bs4 import Beat |
节点选择器
提取属性
获取到的是第一个标签
soup.title.string
:获取 title 标签的文本内容soup.title.name
:获取节点名称“title”soup.p.attrs
:获取节点属性字典soup.p.attrs['class']
或者soup.p['class']
:获取节点属性
关联选择
子孙
soup.p.contents
:获取直接子节点列表soup.p.children
:获取直接子节点生成器soup.p.descendants
:获取所有子孙节点生成器
祖先
soup.p.parent
:获取直接父节点soup.p.parents
:获取所有祖先节点生成器
兄弟
soup.a.next_sibling
:获取下一个兄弟节点soup.a.previous_sibling
:获取上一个兄弟节点soup.a.next_siblings
:获取后面所有兄弟节点列表soup.a.previous_siblings
:获取前面所有兄弟节点列表
方法选择器
find_all()
1 | find_all(self, name=None, attrs={}, recursive=True, text=None,limit=None, **kwargs) |
用法:
soup.find_all(name='ul')
:获取所有 ul 节点组成的列表soup.find_all(attrs={'id':'list'})
:获取 id 为 list 的节点- 常用参数如 id 和 class 可以直接传入,如:
soup.find_all(id = 'list')
或soup.find_all(class_='element')
soup.find_all(text=re.compile('link'))
可以匹配文本,也可以用正则表达式对象
find()
返回第一个匹配的元素,和 find_all 用法差不多
其他
find_parents()
,find_parent()
find_next_siblings()
,find_next_sibling()
find_previous_siblings()
,find_previous_sibling()
find_all_next()
,find_next()
返回节点后符合条件的节点find_all_previous()
,find_previous()
CSS 选择器
soup.select('CSS选择器')
:返回列表
python爬虫解析库BeautifulSoup速查
https://yxchangingself.xyz/posts/python_spider_parser_beautifulsoup/