BeautifulSoup4
python 解析html, 用一次翻一次文档,无语了。距离上次用BeautifulSoup4已经差不多10个月了…./(ㄒoㄒ)/~~ 现在做个记录,方便下次用。
安装
pip install beautifulsoup4
引入
from bs4
import BeautifulSoup
soup = BeautifulSoup(html_doc,
'html.parser')
html.parser解析器是Python的内置标准库,还有另外的html解析器 lxml, html5lib 参考如下:
语法
html标签名字查找
# 通过html标签名获取
soup.title
# <title>The Dormouse's story</title>
# 获取标签名
soup.title.name
# u'title'
# 获取标签内容
soup.title.
string
# u'The Dormouse's story'
# 获取父标签名
soup.title.parent.name
# u'head'
# 获取p标签(dom层第一个p标签)
soup.p
# <p class="title"><b>The Dormouse's story</b></p>
# 获取p标签的 class 属性值
soup.p[
'class']
# u'title'
# 查看a标签(dom层第一个a标签)
soup.a
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
# 获取所有a标签
soup.find_all(
'a')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
# <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
# 获取指定ID的标签
soup.find(id=
"link3")
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
# 获取a标签的href属性值
a_link.
get(
'href') 或 a_link[
'hreft']
# 获取标签内的所有文本
soup.get_text()
tag
# 获取标签名
tag.name
# 获取标签属性
tag.attrs
css搜索
注意 class_ 的下划线
soup.find_all(
"a",
class_=
"sister")
text搜索
text 参数接受 字符串 , 正则表达式 , 列表, True
soup.find_all(text=
"Elsie")
soup.find_all(text=[
"Tillie",
"Elsie",
"Lacie"])
soup.find_all(text=re.compile(
"Dormouse"))
[
u"The Dormouse's story",
u"The Dormouse's story"]
参考文档
BeautifulSoup4 中文
BeautifulSoup4 英文
转载请注明原文地址: https://ju.6miu.com/read-12134.html