python爬去网页数据时,如果使用requests库和xpath,首先需要使用lxml的etree将获取的网页数据完整,因为有时候使用requests.get(url ,headers=headers)获取到的数据不完整。etree模块就可以自动修复html文本。

安装lxml:

lxml是python的一个解析库,支持html和xml的解析,同时也支持xpath解析方式。

pip install lxml

etree模块的使用

from lxml import etree

对网页HTML的解析,使用etree.HTML(html.content)

接下来就可以使用xpath抓取对应的需求节点的信息了。

xpath的语法

选取节点:

/: 表示选取直接子节点

xpath: /div

result: null

season: /div表示获取根节点下的div但是,根节点下只有 这一个子节点,/是不能获取到子孙节点的

//: 表示获取任意节点

谓语:

通过列子来说明

//book/div[1]

explanation: 获取book节点下的第一个div节点

注意: xpath语法的下标是从数字1开始的,这里和python的语法是有区别的

//book/div[last()]

explanation: 获取book节点的最后一个div节点

//book/div[positon()<3]

explanation: 获取book节点下的前两个div节点

//book/div[@price=1]

explanation: 获取book节点下属性price=1 的div节点

//book/div[contains(@class,"f")]

explanation: 获取book节点下class属性中包含f的div节点

通配符:

: 表示获取任意的节点

@:表示任意属性

多个路径:

| : //book[@price=1] | //book[@price=2] 表示获取属性price=1或者price=2的book节点

逻辑运算符:

< ,> , <= ,>= , !=, and , or

pythonxpath语法_xpath语法相关推荐

  1. 一文读懂XPath基本语法_XPath语法详解_XPath教程

    因为最近在学习与整理有关python爬虫的文章,连带遇到XPath的使用,就顺便一起整理出来. XPath与自动化的关系 XPath是一门在XML文档中查找信息的语言,可用来在XML文档中对元素和属性 ...

  2. Java解析SQL生成语法树_Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python...

    Atitit.sql ast 表达式 语法树 语法 解析原理与实现java php c#.net js python 1.1.Sql语法树ast如下图锁死 2.SQL语句解析的思路和过程 2.1.le ...

  3. Python基础语法——基础语法、变量

    Python基础语法 基础语法 变量 一.基础语法 注释 - 代码中不会被编译成机器码的部分,即不影响程序功能的部分 单行注释:在一行内容前加#,让这行内容变成注(ctrl+/) 即,# 注释内容 # ...

  4. java xpath 语法_xpath 语法

    前言 这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作. 备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经 ...

  5. java xpath语法_XPath详解

    以下是本人找到的最完整最易懂的XPath教程,不敢私藏,拿出来与大家分享. 实例 1 基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路 ...

  6. laytpl语法_layui语法基础

    一.按钮区分 ​ 1.按照主题划分 ​ 原始:class = "layui-btn layui-btn-primary" ​ 默认:class = "layui-btn& ...

  7. pythonjs语法_Python语法精解:JSON语法

    什么是JSON JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...

  8. python基本语法-Python语法基础50题

    1. Python3.x版本的保留字总数是 A. 35 B. 27 C. 16 D. 29 [答案]:A [解析]:Python中的保留字是35个(如果有33的选项也可选择),可以通过 help(ke ...

  9. python语法教程-Python语言的核心语法(1)(语法教程)(参考资料)

    1.介绍 本参考手册描述了Python编程语言.它不是一个教程. 虽然我试图尽可能精确,但我选择使用英语而不是正式的规范,除了语法和词法分析.这应该使文档对普通读者更容易理解,但会留下歧义的余地.因此 ...

最新文章

  1. FPGA配置 - 基于SPI FLASH的FPGA多重配置(Xilinx)
  2. WCF入门(八)——异常处理2
  3. SAP MB51物料凭证清单程序增强增加四个字段
  4. iBATIS In Action:使用映射语句(二)
  5. struts2从一个action跳到另一个action的配置方法
  6. linux内核分为子系统,Linux内核内存管理子系统分析【转】
  7. Android加载图片OOM错误解决方式
  8. 中国五大物联网平台优势分析
  9. 信贷ABS资产静态池与动态池里的数据分析内容都有啥
  10. asp.net mvc4 设置build项目时,编译view页面
  11. 一篇 CPU 占用高,导致请求超时的故障排查
  12. 码栈——让一切变得自动化
  13. installshield 如何实现Oracle数据库脚本的执行功能
  14. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  15. python开发面试自我介绍_面试中怎样做一个精彩的自我介绍
  16. Vue.js项目实战——Day(1)
  17. android的listview分组显示的时候layout_marginTop失效的解决办法
  18. OSChina 周五乱弹 —— 源花?真土鳖,我要开源小仙女!
  19. TypeScript基本语法(W3C)
  20. 电容屏物体识别_一种基于触摸屏触摸点的物体识别方法与流程

热门文章

  1. 肺结节圆形边界光滑_【每周一例】32期讨论实录 肺部这光滑结节,是PSP吗?
  2. 解决LinuxRedhat网卡配置MAC地址冲突问题
  3. 技术分享 | 《云原生下的IAST落地实践》
  4. ArcFace,CosFace,SphereFace
  5. 常见的文本特征(句向量)提取方法有哪些?什么是One-Hot、TF-IDF?word2vec如何训练?【Python】
  6. MacOS 开发 — 读取文件/视频 信息
  7. 电路习题解答 第五章 5-5、5-6
  8. 数字孪生工厂丨智慧工厂孪生驾驶舱,实现智能化精益生产管理
  9. 什么是ECShop二次开发?
  10. IC自媒体访谈:吾爱IC社区