欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python爬虫解析库BeautifulSoup速查

程序员文章站 2022-05-29 10:18:01
...

为了方便使用,将BeautifulSoup库常用的接口写到一起。

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

导入与解析

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()

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 package