说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的 Python 库。它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。Beautiful Soup 会帮你节省数小时甚至数天的工作时间。
pypi 网址:https://pypi.org/project/beautifulsoup4/
pip install beautifulsoup4
注意,一定是 beautifulsoup4,不是 beautifulsoup。
# 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.. 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 库
from bs4 import BeautifulSoup
# 解析为 soup 对象
soup = BeautifulSoup(html_doc, 'html.parser')
soup.prettify() # 美化的 html 代码显示
soup.get_text() # 所有文字内容
常用的属性:
soup.title # title 标签
# <title>The Dormouse's story</title>
soup.title.name # title 标签的文本
# u'title'
soup.title.string # title 标签中的内容
# u'The Dormouse's story'
soup.title.parent.name # title 标签的上级标签
# u'head'
soup.p # p 标签
# <p class="title"><b>The Dormouse's story</b></p>
soup.p['class'] # p 标签的 class 值
# u'title'
soup.a # a 标签
# <a class="sister" href="http://e.com/elsie" id="link1">Elsie</a>
soup.find_all('a') # 所有的 a 标签
# [<a class="sister" href="http://e.com/elsie" id="link1">Elsie</a>,
# <a class="sister" href="http://e.com/lacie" id="link2">Lacie</a>,
# <a class="sister" href="http://e.com/tillie" id="link3">Tillie</a>]
soup.find(id="link3") # 指定 id
# <a class="sister" href="http://e.com/tillie" id="link3">Tillie</a>
Beautiful Soup 将复杂 HTML 文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为 4 种:Tag , NavigableString , BeautifulSoup , Comment 。
Tag 对象与XML或HTML原生文档中的tag相同:
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
type(tag)
# <class 'bs4.element.Tag'>
todo
更新时间:2022-12-11 21:18:29 标签:爬虫 提取 html python