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标签名获取
soup.title
# The Dormouse's story
# 获取标签名
soup.title.name
# u'title'
# 获取标签内容
soup.title.string
# u'The Dormouse's story'
# 获取父标签名
soup.title.parent.name
# u'head'
# 获取p标签(dom层第一个p标签)
soup.p
# The Dormouse's story
# 获取p标签的 class 属性值
soup.p['class']
# u'title'
# 查看a标签(dom层第一个a标签)
soup.a
# Elsie
# 获取所有a标签
soup.find_all('a')
# [Elsie,
# Lacie,
# Tillie]
# 获取指定ID的标签
soup.find(id="link3")
# Tillie
# 获取a标签的href属性值
a_link.get('href') 或 a_link['hreft']
# 获取标签内的所有文本
soup.get_text()
# 获取标签名
tag.name
# 获取标签属性
tag.attrs
注意 class_ 的下划线
soup.find_all("a", class_="sister")
text 参数接受 字符串 , 正则表达式 , 列表, True
soup.find_all(text="Elsie")
# [u'Elsie']
soup.find_all(text=["Tillie", "Elsie", "Lacie"])
# [u'Elsie', u'Lacie', u'Tillie']
# 这个正则会比较实用吧
soup.find_all(text=re.compile("Dormouse"))
[u"The Dormouse's story", u"The Dormouse's story"]
BeautifulSoup4 中文
BeautifulSoup4 英文