Python--beautifulsoup4 (bs4)

beautifulsoup4

引用:from bs4 import BeautifulSoup

BeautifulSoup 类

soup = BeautifulSoup(),此类会在初始化时自动修正html

获取节点

soup.节点名,比如soup.p获取

节点,会返回第一个匹配到的p节点,返回类型是bs4.element.Tag

prettify 方法

格式化输出html

bs4.element.NavigableString 类

文本节点的类型

bs4.element.Tag 类

嵌套调用

可以使用点操作符获取内部节点,返回的已经是Tag类型

name

节点的名称,比如p

attrs

节点当前使用的所有属性,字典格式,也可以不适用attrs而是直接使用 节点名['属性名']的方式直接获取,比如 p['class']

string

获取节点的文本内容,如果同时包含文本和其他子节点,返回的是None

contents

返回所有直接子节点, 类型为list

children

同contents,返回所有直接子节点,只是类型为一个迭代器,可以使用list(xxx.children)转成list类型

descendants

返回的是一个生成器,包含所有子孙节点,可以使用list(xxx.descendants)转成list类型

parent

返回节点的父节点

parents

返回一个生成器,包含了节点的所有祖先节点

next_sibling

下一个兄弟节点

next_siblings

返回一个生成器,包含后面的所有兄弟节点

previous_sibling

前一个兄弟节点

previous_siblings

返回一个生成器,包含前面的所有兄弟节点

find_all

查询所有满足条件的节点:find_all(name, attrs, recursive, text, **kwargs)

  • name: 根据节点的名称,比如 name='p'查询所有

    节点

  • attrs: 根据属性查找,字典格式
  • text: 根据文本内容查找,可以是字符串,也可以是正则对象,返回的是文本节点列表

find

只返回第一个匹配的节点

find_parent

find_parents

find_next_sibling

find_next_siblings

find_previous_sibling

find_previous_siblings

find_next

find_all_next

find_previous

find_all_previous

select

使用css选择器进行查找

get_text

获取文本,返回由所有子孙文本节点组成的文本

posted @ 2022-02-27 17:53  liDB  阅读(79)  评论(0编辑  收藏  举报