BeautifulSoup4基本用法(十六)

beautifulsoup是一个可以从HTML或XML文件中提取数据的python库。它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。beautifulsoup会帮你节省数小时甚至数天的工作时间。

  • 根节点:最外层标签
  • 子节点:相对来说,当前标签的下一层级的节点
  • 父节点:相对来说,当前标签的上一层级的节点
  • 子孙节点:相对来说,当前标签的下面的节点
  • 父辈节点:相对来说,当前标签的上面的节点
  • 兄弟节点:同一层级的节点

以下面这段字符为例来演示beautifulsoup的基本使用方法

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>
"""
from bs4 import BeautifulSoup
#创建一个beautifulsoup对象
soup = BeautifulSoup(html_doc,'html.parser') 
#美化代码段
print(soup.prettify())
#直接用标签名匹配,只匹配首次出现的位置,例如匹配p标签
print(soup.p)
#获取标签名
print(soup.p.name)
#Attributes获取属性值,例如获取p标签的属性
print(soup.p.attrs)
#修改属性值
soup.p['class'][0] = 'test'
#获取属性值
print(soup.p.get('class'))
#获取标签包含的内容
print(soup.p.string)
print(soup.p.text)
#获取body的子节点,返回的是一个可迭代对象
print(soup.body.children)
#获取body中的内容
print(soup.body.contents)

查找元素

#find():从头匹配只匹配一次,返回指定的标签元素,匹配不到返回none
p = soup.find('p',attrs={'class':'title'})
p2 = soup.find('p',class_='title')
p3 = soup.find('p','title')
print(p,'\n',p2,'\n',p3)

#find_all():匹配所有结果,返回列表
p = soup.find_all('a',class_='sister')
p2  = soup.find_all('a',attrs={'id':'link2'})
print(p,'\n',p2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值