Python-数据解析-Beautiful Soup-中
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'lxml')
一、通过 CSS 选择器进行搜索
每一条 CSS 样式定义均有两部分组成
[code] 选择器 {样式} [/code]
在 {} 之前的部分就是 “选择器”。选择器指明了 {} 中样式的作用对象。
为了使用 CSS 选择器达到筛选节点的目的,在 bs4 库的 BeautifulSoup 类中提供了一个 select() 方法,该方法会将搜索到的结果放到列表中。
① 通过标签查找
在写 CSS 时,标签的名称不用加任何修饰。调用 select() 方法时,可以传入包含某个标签的字符串。
# 查找标签
soup.select("title")
② 通过类名查找
写 CSS 时,需要在类名的前面加上 “.”。
# 查找类名为 active 的标签
soup.select(".active")
③ 通过 id 名查找
在写 CSS 时,需要在 id 名称的前面加上 “#”。
# 查找 id 名为 main 的标签
soup.select("#main")
④ 通过组合的形式查找
组合查找与写 CLASS 文件时标签名、类名、id 名的组合原理一样,二者需要用空格分开。
# 在 标签 p 中,查找 id 值等于 sumbit 的内容
soup.select("p #sumbit")
可以使用 “>” 将标签与子标签分隔,从而找到某个标签下的直接子标签。
soup.select("head > title")
⑤ 通过属性查找
可以通过属性元素进行查找,属性需要用中括号括起来。但是,属性和标签属于同一个节点,它们中间不能加空格,否则将无法匹配到。
soup.select("a[href='http://example.com/']")
同样,属性仍然可以与上述查找方式组合,即不在同一节点的属性使用空格隔开,同一节点的属性之间不加空格。
soup.select('p a[href="http://example.com/"]')
上面这些查找方式都会返回一个列表。遍历这个列表,可以调用 get_text() 方法来获取节点的内容。
soup = BeautifulSoup(html_doc, 'lxml')
# 获取节点的内容
for element in soup.select("a"):
print(element.get_text())
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有