BeautifulSoup4通过lxml使用Xpath,以及获取(定位)元素和其文本或者属性

环境:win10,python3.8.10

首先需要安装:beautifulsoup4,lxml

使用命令:

复制代码
pip38 install beautifulsoup4
pip38 install lxml

安装完毕后查看一下:

写代码:

复制代码
from bs4 import BeautifulSoup 
from lxml import etree 
import requests 


URL = "https://www.xxx.com"

HEADERS = ({'User-Agent': 
			'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 \ 
			(KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',\ 
			'Accept-Language': 'en-US, en;q=0.5'}) 

webpage = requests.get(URL, headers=HEADERS) 
soup = BeautifulSoup(webpage.content, "html.parser") 
dom = etree.HTML(str(soup)) 
print(dom.xpath('//*[@id="firstHeading"]')[0].text) 

这里针对xpath获取(定位)元素的方法,还有几点注意事项:

(1)一个属性(如property)中包含即这个属性值是a b c d这样的样式某个字符串(如og:description)的写法

复制代码
dom.xpath("//meta[contains(@property,'og:description')]")

(2) 上述代码的结果是一个列表,使用时一般要转成单个(加0或者用循环)

(3)获取其标签内的文本用元素.text,获取其某个属性用元素.get('属性')

(4)最后注意一点,浏览器网页F12出来的数据,和selenium、requests出来的数据,有时候是不一样的,要根据你使用的获取响应的实际数据来定位元素。

上述内容参考:

(1)How to use Xpath with BeautifulSoup ? - GeeksforGeeks

(2)汇总selenium利用xpath等找网页节点的方法_webdriver xpath 查询指定节点下的子节点-CSDN博客

(3)汇总selenium利用xpath等找网页节点的方法(二)-CSDN博客

(4) xpath定位不包含某种属性的元素_xpath 不包含属性-CSDN博客

(5)用selenium和xpath定位元素并获取属性值以及str字符型转json型_python selenium xpath设置元素属性值-CSDN博客

(6)js通过xpath定位元素并且操作元素以下拉框select为例_js xpath-CSDN博客

(7)bs4(beautifulsoup4)获取div部分文本内容(标签下的文本及子标签文本问题)_beautiful解析一部分div-CSDN博客

相关推荐
2601_9563198840 分钟前
最新AI量化提效,先做可验证的小流程
人工智能·python
李燚2 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
开飞机的舒克_2 小时前
FastAPI 实战入门:从路由、参数校验到依赖注入的后端开发指南
python·fastapi
霸道流氓气质2 小时前
Kiro 中反编译 JAR 包并分析字节码的流程指南
chrome·python·jar
2zcode2 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗3 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python
LONGZETECH3 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
郝学胜-神的一滴3 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
Metaphor6923 小时前
使用 Python 冻结 Excel 文件中的行、列和单元格
开发语言·python·excel
言乐64 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构