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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rocketmq 学习二 基本概念

教程:基本概念 | RocketMQ 视频教程 https://www.bilibili.com/video/BV1d5411y7UW?vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 版本:5.0 一 基本概念 1.1 生产者/Producer 1.1.1 定义 消息发布者。是构建并传输消息到服务端的运行实体。…

异众比率(variation ratio)

异众比率(variation ratio)是指非众数组的频数占总频数的比率,其计算公式为: 其中,为众数组的频数。 异众比率主要用于衡量众数对一组数据的代表程度。异众比率越大,说明非众数组的频数占总频数的比重越大&#xff0…

harbor 认证

Harbor 认证过程 Harbor以 Docker Registry v2认证为基础,添加上一层权限保护。1.v2 集成了一个安全认证的功能,将安全认证暴露给外部服务,让外部服务去实现2.强制用户每次Docker pull/push请求都要带一个合法的Token,Registry会…

【AHK V2】设计模式之命令模式

目录 情景剧场什么是命令模式优缺点优点缺点 使用命令模式的步骤命令模式代码示例合理使用AI工具自动生成代码 情景剧场 我们来设想一个场景: 你进入一家餐馆,餐馆只有老板一个人(老板即厨师)。 “老板,一份小炒肉&am…

吃透1850道真题和解析备考AMC8和AMC(1020240524持续发布)

多做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一,通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。 今天我们继续…

java实现List对象转geojson文本返回前端

1.业务需求 查询带有经纬度数据的list列表,将其转为geojson格式给前端。 2.GeoJson格式说明 GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对…

计算机系统的层次结构

操作系统的定义 操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基…

GBase 8s 如何查看回滚的事务 和对应的SQL

描述: 如何查看当前数据库中是否有事务在回滚, 如果有, 具体是哪条 SQL 在回滚? 解决办法: 方法1: 通过 onstat -u|grep RP; 可以获取相关的 sessionid。 通过 onstat -g ses sid 获取 SQL&a…

【多模态融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

论文链接:Cross Modal Transformer: Towards Fast and Robust 3D Object Detection 代码链接:https://github.com/junjie18/CMT 作者:Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang 发表单位…

字符串的周期:每一期都有那么几位

【题目描述】 如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。 输入一个长度不超过80的字符串(不含空格),输出其最小周期。 输入第一行表示有T组数据,后续是T行字符串。输出的每组…

性能测试工具

性能测试工具 1.Jmeter 环境搭建1.安装JDK2.安装Jmeter1.下载2.安装3.环境配置 3.Jmeter 文件目录介绍1.bin目录2.docs 目录3.printable_docs目录4.lib目录 4.修改默认配置1.汉化配置2.修改主题 5.元件的基本介绍6.元件的作用域作用域的原则 7.元件的执行顺序 1.Jmeter 环境搭建…

【Pytorch】16.使用ImageFolder加载自定义MNIST数据集训练手写数字识别网络(包含数据集下载)

数据集下载 MINST_PNG_Training在github的项目目录中的datasets中有MNIST的png格式数据集的压缩包 用于训练的神经网络模型 自定义数据集训练 在前文【Pytorch】13.搭建完整的CIFAR10模型我们已经知道了基本搭建神经网络的框架了,但是其中的数据集使用的torchvision…

Excel 按顺序去重再编号

Excel的A有重复数据: A1Cow2Chicken3Horse4Butterfly5Cow 现在要去除重复,用自然数按顺序进行编号,结果写在相邻列: AB1Cow12Chicken23Horse34Butterfly45Cow1 使用 SPL XLL,输入公式并向下拖: spl(&q…

RISC-V压缩指令扩展测试

概述 RISC-V定义了压缩指令扩展(compressed instruction-set extension ),命名为“C”扩展。压缩指令使用16位宽指令替换32位宽指令,从而减少代码量。这个C扩展可运用在RV32、RV64和RV128指令集上,通常使用“RVC”来表…

贝锐向日葵打造农机设备远程运维支持方案

当物联网“万物互联”的概念向第一产业赋能,农机设备的智能化程度也越来越高。 所谓农业物联网,即在应用层将大量的传感器节点构成监控网络,通过各种传感器采集信息,以帮助农民及时发现问题,并准确地判定发生问题的位…

List、IList、ArrayList 和 Dictionary

List 类型: 泛型类命名空间: System.Collections.Generic作用: List<T> 表示一个强类型的对象列表&#xff0c;可以通过索引访问。提供了搜索、排序和操作列表的方法。特点: 类型安全&#xff0c;性能较好&#xff0c;适用于需要强类型和高效操作的场景。例子: List<…

Web安全:SQL注入之时间盲注原理+步骤+实战操作

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

ICML2024高分论文!大模型计算效率暴涨至200%,来自中国AI公司

前段时间&#xff0c;KAN突然爆火&#xff0c;成为可以替代MLP的一种全新神经网络架构&#xff0c;200个参数顶30万参数&#xff1b;而且&#xff0c;GPT-4o的生成速度也是惊艳了一众大模型爱好者。 大家开始意识到—— 大模型的计算效率很重要&#xff0c;提升大模型的token…

前端加载excel文件数据 XLSX插件的使用

npm i xlsx import axios from axios; axios //这里用自己封装的http是不行的&#xff0c;踩过坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

2024年 电工杯 (A题)大学生数学建模挑战赛 | 园区微电网风光储协调优化配置 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 本次DeepVisionary带来的是电工杯的详细解读&#xff1a; 完整内容可以在文章末尾全文免费领取&阅读&#xff01; 问题重述…