Python BeautifulSoup4

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 参考如下:

python html解析器

语法

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")
# [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 英文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值