当前位置: 首页 > news >正文

Python爬虫 XPath 三方库lxml

前言

XPath是Python爬虫最重要的过滤原始数据的手段之一,是爬虫最核心的技术

是专业抓取HTML页面而生的,基本上只用于抓取HTML页面使用

目录

安装支持XPath三方库lxml

XPath代码入门示例

XPath表达式语法

在源代码上面直接获取XPath


安装支持XPath三方库lxml

pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple

XPath代码入门示例

from lxml import etreedata = "请求网页返回的源代码HTML数据"#使用 lxml 库中的 etree 模块使用XPath解析data数据
datas = etree.HTML(data)#返回的数据一般都是数据,即使是一个数据也是一个数组形式
res = datas.xpath('xpath表达式')#res这个数组里面的数据就是我们过滤好的目标数据
print(res)

XPath表达式语法

编写好的XPath表达式一般我们填入xpath()这个方法的适合习惯单引号,因为我们里面准备填写HTML里面的属性的时候我们习惯给双引号

XPath语法是按HTML页面的层级标签关系进行匹配的

 /                从根节点开始的绝对路径

//                匹配任意层级的节点

./                表示从当前节点开始的相对路径

HTML标签后面是可以跟坐标的,坐标是从1开始

        如 /html/body/p[1]/text()     

                就是使用绝对路径,从html标签根路径开始,html标签下的body标签下的第一个p标签的内容text()

        如//p[1]

                就是使用模糊匹配,匹配到HTML文件中的所有第一个P标签的内容text()

标签[@属性名="属性值"]             可以精确匹配具体的标签,确定好属性名和属性值的唯一性

/@属性名            取这个标签该属性值

/text()                  取这个标签的内容

在源代码上面直接获取XPath

不推荐,不美观而且使用起来不够灵活

Python请求的HTML有可能是懒加载的,导致请求的HTML字符串与页面源代码不符,导致使用不了

所以还是尽量自己可以按照XPath表达式语法自己编写,实际问题实际分析

 

http://www.dtcms.com/a/266078.html

相关文章:

  • Unity Android与iOS自动重启
  • Java综合练习04
  • js代码中的作用域
  • 深度学习×第4卷:Pytorch实战——她第一次用张量去拟合你的轨迹
  • Mausezahn - 网络流量生成与测试工具(支持从链路层到应用层的协议模拟)
  • C++ 解决类相互引用导致的编译错误
  • 状态码301和302的区别
  • 智能设备远程管理:基于OpenAI风格API的自动化实践
  • 渗透靶机 Doctor 复盘
  • 粘包问题介绍
  • JS模块导出导入笔记 —— 默认导出 具名导出
  • 【嵌入式电机控制#8】编码器测速实战
  • C++讲解—类(2)
  • MCP+Cursor入门
  • AI 日报:阿里、字节等企业密集发布新技术,覆盖语音、图像与药物研发等领域
  • 前缀和与差分算法详解
  • 线程池相关介绍
  • SpringSecurity01
  • 【libm】 7 双精度正弦函数 (k_sin.rs)
  • 从混沌到澄明,AI如何重构我们的决策地图与未来图景
  • 把大象塞进冰箱总共分几步:讲讲dockerfile里conda的移植
  • IOC容器讲解以及Spring依赖注入最佳实践全解析
  • XILINX FPGA如何做时序分析和时序优化?
  • Linux之Socket编程Tcp
  • 【BurpSuite 2025最新版插件开发】基础篇7:数据的持久化存储
  • snail-job的oracle sql(oracle 11g)
  • 百度捂紧“钱袋子”
  • 冒泡排序及其优化方式
  • Javaweb - 10.1 Servlet
  • 两个手机都用同个wifi,IP地址会一样吗?如何更改ip地址