beautifulsoup库—总结

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的标签

  

posted @ 2018-08-15 16:05  todaynowind  阅读(228)  评论(0编辑  收藏  举报