一、python数据提取xpath

1.beautifulsoup xpath 正则表达式

2.xpath是一种在XML和HTML文档中查找信息的语言,可用来在XML和HTML中对元素进行遍历  Chrome XPath Helper

3.XPath语法

(1)选取节点:使用路径表达式来选取文档中的节点

nodename  选取节点的所有子节点  //div

/ 如果是在最前面,代表从根节点选取,否则选择某节点下的某个节点 一个/代表直接子节点(一个网页的直接子节点是HTML) 两个//代表子孙节点  /html/body 代表查找的是html下面的直接子节点body

@选取某个节点的属性  //div[@id]选取所有拥有id属性的div节点

(2)谓语

/bookstore/book[1] 选取bookstore中的第一个book元素

/bookstore/book[last()] 选取bookstore中的最后一个book元素

/bookstore/book[position()<3] 选取bookstore下前面两个子元素

//div[contains(@class,"fl")] 模糊匹配

(3)//dl[@class="job" and  @id="jong"] 获取即拥有class也有id属性的dl

使用//获取整个页面当中的元素,然后写标签名写谓词进行提取

需要注意:

/和//区别 /代表只获取直接子节点 //获取子孙节点

contains:有时候某个属性包含了多个值,可以使用contains

代码:

//div[contains(@class="job")]

谓词的下标是从1开始的

二、lxml库

基本使用:

六个双引号可以加入多行代码作为字符串

from lxml import etree

html=etree.HTML.(text)   html不是一个字符串,是一个Element类型的对象

print(etree.tostringt(htmlElement,encoding='utf-8')).decode('utf-8')

def parse_lago_file():

parse=etree.HTMLParser(encoding='utf-8')  制定用html的解析器,parse方法默认的是xml的解析器,如果html代码不规范,出现错误的标签,使用xml的解析器会报错,因此要换成html的解析器

htmlElement=etree.parse("lago.html",parse=parse)

print(etree.tostringt(htmlElement,encoding='utf-8')).decode('utf-8') parse方法不能处理有问题的标签,会报错

1.解析html字符串,使用‘lxml.etree.HTML’进行解析

html=etree.HTML.(text)   html不是一个字符串,是一个Element类型的对象

print(etree.tostring(htmlElement,encoding='utf-8')).decode('utf-8')

2.解析html文件,使用‘lxml.etree.parse’进行解析,这个函数默认使用的是‘xml’解析器,如果碰到一些不规范的‘HTML’代码的时候就会出现解析错误,就要创建‘HTML’解析器

xpath函数返回的是一个列表

3.for tr in trs:

href=tr.xpath(".//a")

注意在trs中寻找a标签,需要在//前面加一个.,否则就会在整个html中寻找a标签

python中xpath语法怎么用_Python Xpath语法相关推荐

  1. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  2. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  3. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  4. python中matrix是什么意思_Python的基础语法

    Python的基础语法 在对Python有了基础的认识之后,下面来了解一下Python的基础语法,看看它和C语言.java之间的基础语法差异. 一.变量.表达式和语句 Python中的语句也称作命令, ...

  5. python中的常量是指_python入门教程04-01(python语法入门之变量)

    上一课我们学习了编程语言与python介绍,我们接下来的任务就是学习python语法入门的课程了. 本章的主题是先带大家了解下语法入门介绍,然后重点介绍python变量. 一 引入 我们学习pytho ...

  6. python中not加变量是_Python -- 语法和变量

    小Q:风一更,雪一更,聒碎乡心梦不成,故园无此声.           ----纳兰容若<长相思> -------------------------------------------- ...

  7. python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容

    Python笔记 1.Python3和Pycharm2018的安装 2.Python3基础语法 2.1.1.数据类型 2.1.1.1.数据类型:数字(整数和浮点数) 整数:int类型 浮点数:floa ...

  8. python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型

    (点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...

  9. python赋值语句的一般格式为_Python 基础语法

    Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程 ...

最新文章

  1. 硬件Pythia:将现实世界桥接到区块链
  2. 穷游网:这里有一个包含十二年用户体验妙计的锦囊
  3. 知识付费不热了,得到们接下来故事怎么讲?
  4. 微服务架构设计模式~为应用程序定义微服务架构
  5. 必备知识:大数据处理应遵循的原则
  6. django的视图与模板
  7. “神兽”出笼谁来管?多地试水暑期托管班
  8. matlab基数排序,如何在MATLAB中编写基数排序的程序
  9. python通过解释器来编译_python 解释器与编译过程,代码的搬运工
  10. HTML之表格的基本知识
  11. HTC扣动板机出现射线。获得射线与VR中物体的交点并用linerender表示出来
  12. AIDA64内存与缓存测试过了算稳定吗_KLEVV BLOT XR DDR4内存:锐龙平台兼容性测试
  13. Arcgis培训内容
  14. 网上下载或自己编程实现任意一种多变量决策树算法,并观察其在西瓜数据集3.0上产生的结果。
  15. 元气骑士机器人获取方法_元气骑士机器人怎么获得视频(机器人获取方法说明)...
  16. web从零开始做网站:三.HTML标签:1.常用文本标签图像标签
  17. 一插usb接口计算机就重启,电脑故障分析:主机一插USB设备就死机,故障原因令人很无语...
  18. NPOI导出Excel自动计算公式问题
  19. 怎么对接个人收款支付接口(扫码支付)
  20. 研究型论文_CICIDS2017 数据集中基于异常的入侵检测系统的机器学习基准测试(英文论文)

热门文章

  1. 熵减-华为活力之源-笔记
  2. linux终端的背景_Linux下Terminator的美化方法
  3. 解决 /mnt中有hgfs但没共享文件的方法
  4. nginx+tomcat 获取正确的remoteAddr
  5. GO语言学习之路24
  6. C语言变量的分类(C语言六)
  7. 信息搜集 - 二层发现 Nmap
  8. 分享最新水印小程序搭建教程和源码
  9. 学习记录:关于如何安装EndnoteX9以及汉化过程
  10. James Webb Space Telescope Pipeline(詹姆斯.韦伯太空望远镜数据处理流程)