BeautifulSoup

时间:2025-10-10 05:19:43  阅读量:  分类:标签:

创建一个 beautiful节点

from bs4 import BeautifulSoup  #导入库
# 根据HTML网页字符串创建BeautifulSoup对象
soup = BeautifulSoup(
    html_doc,          # HTML文档字符串
    'html.parser',     # HTML解析器
    from_encoding='utf8' # HTML文档的编码
)

查找网页标签

# 方法:find_all(name, attrs, string)  #name就是标签的名称  例如<p> <div> <tr>等   #attrs 就是搜索标签的属性href  #sitring就是标签内的字符串

# 查找所有标签为a的节点
soup.find_all('a')

# 查找所有标签为a,链接符合/view/123.html形式的内容
soup.find_all('a', href='/view/123.html')

#.attrs 就是获取所有标签的属性值。

# 查找所有标签为div,class为abc,文字为Python的内容
soup.find_all('div', class_='abc', string='Python')

访问标签内的属性

#得到节点:<a href='1.html'>Python</a>
#获取查找到的节点的标签名称
a.name
#获取查找到的 a 节点的 href 属性,获取a标签的url,也可以获取别的标签的。
a['href']
#获取查找到的 a 节点的链接文字,也可以获取别的标签的。
a.get_text()

属性选择器

from bs4 import BeautifulSoup
# css选择器
html_doc = """<html><head><title>"属性选择器"</title></head>
<body><p class="title"><b>www.youbafu.com</b></p><p class="website">一个学习编程的网站</p>
<a href="http://www.youbafu.com/python/" id="link1">python教程</a>
<a href="http://www.youbafu.com/c/" id="link2">c语言教程</a>
<a href="http://www.youbafu.com/django/" id="link3">django教程</a>
<p class="vip">加入我们阅读所有教程</p>
<a href="http://www.youbafu.com/vip" id="link4">成为vip</a>
<p class="introduce">介绍:<a href="http://www.youbafu.com/about.html" id="link5">关于网站</a>
<a href="http://www.youbafu.com/about0.html" id="link6">关于站长</a></p>"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 根据元素标签查找
print("我是根据元素标签查找:",soup.select('title'))
# 根据属性选择器查找
print("我是根据属性选择器查找:",soup.select('a[href]'))
# 根据类查找
print("我是根据class的类进行查找:",soup.select('.vip'))
# 后代节点查找、首先查找html、在找到head、在找到title
print("我是后代节点查找:",soup.select('html head title'))
# 查找兄弟节点
print("我是兄弟节点:",soup.select('p + a'))
# 查找子节点
print(soup.select('p > a'))
print(soup.select('.introduce > #link5'))