0、作用
一个简单的html网页源代码:
<html>
<head>
<title>This is a python demo page</title>
</head>
<body>
<p class="title">
<b>The demo python introduces several python courses.</b>
</p>
<p class=“course”>Python is a wonderful general‐purpose programming language.You can learn Python from novice to professional by tracking the following courses:
<a href="http://www.icourse163.org/course/BIT‐268001" class="py1"id="link1">Basic Python</a> and
<a href="http://www.icourse163.org/course/BIT‐1001870001" class="py2"id="link2">Advanced Python</a>.
</p>
</body>
</html>
将其画成一棵标签树
Beautiful Soup的作用就是将爬取的信息整理成可视化良好的信息,导库的方法如下:
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>data</p>', 'html.parser')
1、基本元素

| 基本元素 | 说明 |
|---|---|
| Tag | 标签最基本的信息组织单元,分别用<>和</>标明开头和结尾 |
| Name | 标签的名字,上图中tag的名字是’p’,格式:<tag>.name |
| Attributes | 标签的属性,字典形式组织,格式:<tag>.attrs |
| NavigableString | 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string |
| Comment | 标签内字符串的注释部分,一种特殊的Comment类型 |
2、内容的遍历

(1)下行遍历
| 属性 | 说明 |
|---|---|
| .contents | 子节点的列表,将所有儿子节点存入列表 |
| .children | 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点 |
| .descendants | 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历 |

(2)上行遍历
| 属性 | 说明 |
|---|---|
| .parent | 节点的父亲标签 |
| .parents | 节点先辈标签的迭代类型,用于循环遍历先辈节点 |

(3)平行遍历
| 属性 | 说明 |
|---|---|
| .next_sibling | 返回按照HTML文本顺序的下一个平行节点标签 |
| .previous_sibling | 返回按照HTML文本顺序的上一个平行节点标签 |
| .next_siblings | 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签 |
| .previous_siblings | 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签 |


3、prettify()
print(soup.prettify())

56万+

被折叠的 条评论
为什么被折叠?



