python爬虫解析库BeautifulSoup速查

为了方便使用,将 BeautifulSoup 库常用的接口进行总结。

总结内容来源:《python3 网络爬虫开发实战》崔庆才

导入与解析

1
2
from bs4 import Beat
soup = BeautifulSoup(response.text,'lxml')

节点选择器

提取属性

获取到的是第一个标签

  • 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选择器'):返回列表

作者

憧憬少

发布于

2019-09-06

更新于

2019-09-06

许可协议