Beautiful Soup是学习到的第一个爬虫库,以下内容是小结。具体学习查看文档链接。
文档链接:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#
2、Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。
- 推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4。
2.1 HTML代码进行标准的缩进格式
html_doc="""
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
# 使用BeautifulSoup解析这段代码,能够得到一个beautifulsoup对象,并能按照标准的缩进格式的结构输出。
from bs4 import BeautifulSoup
soup=BeautifulSoup(html_doc,'html.parser')
print(soup.prettify()) # prettify()为beautifulsoup的格式化输出函数
2.2 遍历文档树
解释:
- 得到标签对象 Tag: Soup=BeautifulSoup(html).a
- 得到标签对象Tag的名字:Soup.name
- 得到标签对象Tag的属性:Soup.attrs
- 得到标签对象Tag的属性相应键对应的值:Soup[‘class’]
- 得到标签对象Tag属性的具体值:Soup.get(‘href’)
- 得到标签对象Tag的子节点以列表方式:Soup.contents
- 得到<a>标签中的<title>标签:Soup.title
- 得到可遍历的字符串NavigableString对象:Soup.string
- 得到Tag中多个字符串:Soup.string【循环获取】
- 得到Tag的子节点:Soup.children【递归循环】
- 得到Tag所有子孙节点:Soup.descentants【递归循环】
- 得到title的父节点:Soup_title.parent
- 得到兄弟节点:Soup.next_sibling/ Soup.previous_sibling