BeautifulSoup模块
目录
本篇文章主要讲bs4模块(BeautifulSoup),这个模块能做么呢?用一句话来概括的话:beautifulsoup4 从HTML或XML文件中提取数据的Python库,用它来解析爬取回来的xml。从而从网站中精准爬取自己想要的内容。
它是Python的第三方模块,因此需要下载
pip install pip install beautifulsoup4
这个模块与另一个lxml(解析库)模块配合这个用
pip install lxml
最基本用法
html_doc = '需要解析的HTML内容'
soup = BeautifulSoup(html_doc, 'lxml')
一、BeautifulSoup遍历文档树
1. 美化,不是标准xml,完成美化
print(soup.prettify())
2. 遍历文档树(通过点来遍历)
print(soup.html.body.p) # 一层一层找
3. 获取标签的名称
print(soup.a.name)
4. 获取标签的属性
print(soup.a.attrs.get('class'))
5. 获取标签的内容
print(soup.p.text)
print(list(soup.p.strings)) # generator
二、BeautifulSoup搜索文档树
1. 通过find或find_all来搜索
# 1 字符串--->查询的条件是字符串
res=soup.find_all(name='p')
res=soup.find_all('p')
print(res)
# 2 正则表达式
import re
res=soup.find_all(class_=re.compile('^s'))
print(res)
# 3 列表
res=soup.find_all(id=['link1','link2'])
print(res)
print(soup.find_all(name=['a','b']))
print(soup.find_all(['a','b']))
# 4 True
res=soup.find_all(id=True) # 所有有id的标签
res=soup.find_all(href=True)
res=soup.find_all(class_=True)
print(res)
2. 通过css选择器来搜索
其实css选择器是前端重点内容,但是对于后端程序员而言会用就行,这里我放大招哈哈哈
首先去浏览器右键检查、然后用定位箭头定位目的地、点击对用的HTML右键、选择copy、再现在copy selector 按照这个步骤就快速得到一个css选择器咯,css选择器大痛点解决之后,接下来咱看一下如何用css选择器搜索文档树吧,具体请看如下代码框
from bs4 import BeautifulSoup
import requests
res=requests.get('https://www.w3school.com.cn/css/css_selector_attribute.asp')
soup=BeautifulSoup(res.text,'lxml')
print(soup.select('#intro > p:nth-child(1) > strong')[0].text)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix