from bs4 import BeautifulSoup
Beautiful Soup库:是解析、遍历、维 护 "标签树〃的功能库
Beautiful Soup类:
Beautiful Soup类的基本元素:
Tag 标签 最基本的信息组织单元,分别用 <> 和</>标明开头和结尾
Name 标签的名字, <p>...</p> 的名字是 ’P', 格 式 : <tag>.name
Attributes 标签的属性,字典形式组织,格 式 : <tag>.attrs
NavigableString 标签内非属性字符串, <>...</> 中字符串,格 式 : <tag>.string
Comment 标签内字符串的注释部分,一种特殊的 Comment 类型
- 任何存在于HTML语法中的标签者P可以用soup.<tag>访问获得,当HTML文档中存在多个相同<tag>对应内容时,soup.<tag>返回第1个
- 每个<tag> 都有自己的名字 ,通过 <tag>.name 获取,字符串类型
from bs4 import BeautifulSoup
soup = BeautifulSoup (demo, "html. parser")
soup. title
tag = soup.a
soup.a.name
tag.attrs
soup.a.string
Beautiful Soup对象对应一个HTML/XML文档的全部内容
标签树:
标签树的下行遍历:
soup.tag.contents 遍历tag的子节点并存入列表
soup.tag.children 子节点的迭代类型,循环遍历tag的子节点并存入列表
soup.tag.descendants 循环遍历tag的子孙节点并存入列表
标签树的上行遍历:
soup.tag.parent 访问tag节点的父节点标签
soup.tag.parents 节点先辈标签的迭代类型,循环遍历tag的先辈节点
标签树的平行遍历: (发生在同一个父节点下的各节点间,并不是同一层各个节点)
soup.tag.next_sibling 返回按照 HTML 文本顺序的下一个平行节点标签
soup.tag.previous_sibling 返回按照 HTML 文本顺序的上一个平行节点标签
soup.tag.next_siblings 迭代类型,返回按照 HTML 文本顺序的后续所有平行节点标签
soup.tag.previous_siblings 迭代类型,返回按照 HTML 文本顺序的前续所有平行节点标签
bs4库的prettify()方法:
.prettify() 为 HTML 文本 <> 及其内容增加更加 ’\n '
<tag>. prettify()
suop.find_all("a") # 查找所有a标签
suop.find_all(["a","b"]) # 查找所有a,b标签
suop.find_all(re.compile("b")) # 查找所有b开头的标签
suop.find_all("p","lalala") # 返回所有p标签中包含lalala属性的标签
suop.find_all(id="lalalal") # 返回所有id属性等于lalala的标签