BeautifulSoup类 笔记

来源:互联网 发布:手机聊天软件 编辑:程序博客网 时间:2024/06/06 05:19

BeautifulSoup

@(爬虫学习笔记)[BeautifulSoup]

HTML <=> 标签树 <=> BeautifulSoup

基本概念

soup = BeautifulSoup('<html>data</html>','html.parser')

BeautifulSoup类基本元素:
1. Tag: <> .. </>
2. Name: <p> .. </p> 的Name就是 ‘p’
3. Attributes: 标签的属性,字典形式组织,格式:<tag>.attrs
4. NavigableString: 标签内非属性字符串,<> .. </> 中字符串格式:.string
5. Comment: 标签内字符串的注释部分,一种特殊的Comment类型 <!-- .. -->
HTML


标签树的遍历

  • 下行遍历:

    1. <tag>.cotents : 子节点的列表,将<tag> 所有儿子节点存入列表
    2. <tag>.children: 子节点的列表的迭代类型,与<tag>.cotents类似
    3. <tag>.descendants: 子孙节点的迭代类型
  • 上行遍历

    1. <tag>.parent : 节点的父亲标签
    2. <tag>.parents:节点先辈的迭代类型
  • 平行遍历
    1. <tag>.next_sibling: 返回按照HTML文本顺序的下一个平行节点标签
    2. <tag>.previous_sibling: 返回按照HTML文本顺序的上一个平行节点标签
    3. <tag>.next_siblings: 迭代类型,返回按照HTML文本顺序的下一个平行节点标签
    4. <tag>.previous_siblings: 迭代类型,返回按照HTML文本顺序的上一个平行节点标签
      遍历图解

<>.prettify()可使标签树显示的更友好,显示为HTML文本和<>及其内容增加’\n’(有缩进和换行)


<>.find_all()

<>.find_all(name, attrs, recursive, string, **kwargs)

  • name : 对标签名称的检索字符串,如 <>.find_all('a')返回<a .. /a>
  • attrs : 对标签属性值的检索字符串,可标注属性检索,如

    • <>.find_all('p', 'course')表示检索<p .... > 中属性值含有‘course’字符的标签,以list返回 ,如[<p class="course">Python is a wonderful general-purpose .... ]
    • <>.find_all(id='link1') 返回[<p .... id='link1' -- >]
  • recursive : 是否对子孙全部检索,默认Ture

  • string : <>..</>中字符串区域的检索字符串,如<>.find_all(string='basic Pyhton')

tips: <tag>(..) 等价于 <tag>.find_all(..)

0 0
原创粉丝点击