bs4学习

爬虫是玩python的一个好方向,玩好爬虫,bs4必须理解。

bs4 基本对象

  • Tag
  • Name 标签的名字,,.Name
  • Attributes 标签的属性,.attrs,soup.a[‘ref’]
  • NavigableString 标签内非属性的,可遍历的字符串,.string
    字符串不能包含其他基本对象,如tag,字符串不支持.contents、.string属性或find()方法。
  • Comment 标签里的注释部分

对象的属性及方法

1
2
3
4
5
6
tagA.tagB #链式访问
tag.name #获取标签名字
tag.attrs #获取标签属性,返回值为list,tag.['attrsName'],返回特定属性
tag.string #获取tag中间的字符串,标签中只有一个子节点
tag.strings #返回可迭代字符串对象,用于循环获取.
tag.stripped_strings #同strings去除空白内容.

对象的遍历

从上倒下

1
2
3
tag.contents #标签的子节点,返回list
tag.children #标签的子节点,返回NavigableString
tag.descendants #标签的子孙节点,返回NavigableString

从下到上

1
2
tag.parent #标签直接父节点
tag.parents #标签所有父节点,返回迭代类型

平行访问

1
2
在文档树中,使用 .next_sibling.previous_sibling 属性来查询兄弟节点:
通过 .next_siblings.previous_siblings 属性可以对当前节点的兄弟节点迭代输出:

搜索文档树

搜索接受的参数可以是不同的过滤器,过滤器包括字符串、正则表达式、列表、方法、True。

参考

http://beautifulsoup.readthedocs.io/zh_CN/latest/#id16