Python Xpath语法

一、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标签

原文地址:https://www.cnblogs.com/zhang12345/p/12299774.html

时间: 2024-10-08 21:01:50

Python Xpath语法的相关文章

[XPath/Python] XPath 与 lxml (二)XPath 语法

XPath 选取节点时使用的表达式是一种路径表达式.节点是通过路径(path)或者步(steps)来选取的. 本章使用以下 XML 文档作为示例. <?xml version="1.0" encoding="utf8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</pr

Python爬虫利器三之Xpath语法与lxml库的用法

前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 BeautifulSoup 使用不太习惯的话,可以尝试下 Xpath. 参考文档: lxml python 官方文档 XPath语法参考 w3school 安装 pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在

python xpath

提取Item 选择器介绍 我们有很多方法从网站中提取数据.Scrapy 使用一种叫做 XPath selectors的机制,它基于 XPath表达式.如果你想了解更多selectors和其他机制你可以查阅资料http://doc.scrapy.org/topics /selectors.html#topics-selectors  这是一些XPath表达式的例子和他们的含义 /html/head/title: 选择HTML文档<head>元素下面的<title> 标签. /html

Xpath()语法

有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上. 因此,对 XPath 的理解是很多高级 XML 应用的基础. 这个是w3c上关于xpath的介绍,可以看出xpath是在xml文档中查询信息的语

[XPath/Python] XPath 与 lxml (三)XPath 坐标轴

本章我们将沿用上一章的 XML 示例文档. XPath 坐标轴 坐标轴用于定义当对当前节点的节点集合. 坐标轴名称 含义 ancestor 选取当前节点的所有先辈元素及根节点. ancestor-or-self 选取当前节点的所有先辈以及当前节点本身. attibute 选取当前节点的所有属性. child 选取当前节点的所有子元素. descendant 选取当前节点的所有后代元素. descendant-or-self 选取当前节点的所有后代元素以及当前节点本身. following 选取文

Python基本语法

Python基本语法 1.第一个Python代码 print('Hello Word!') 2.注释 1.定义:注释即解释,主要用于提示相关代码的信息. 2.注释分类:单行注释和多行注释 单行注释:# 注释内容 多行注释:''' 注释内容 ''' 或 """ 注释内容 """ 3.变量 1.定义:变量就是可以改变的量 2.命名规则: 1.汉字变量名能用,不推荐使用 2.数字不能开头 3.不可以使用特殊字符,除_ 4.变量区分大小写 5.可以使用关

XPath语法 在C#中使用XPath示例

XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml version="1.0" encoding="utf-8" ?> <pets>   <cat color="black"

python 缩进语法,优缺点

Python的语法比较简单——采用缩进方式 缩进有利有弊: 好处之一是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab.按照约定俗成的管理,应该始终坚持使用4个空格的缩进. 其二是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码. 缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方.当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确.此外,IDE很难像格式化Java代码那样格式化Python代码. 另外,在文本编辑器中,需要设置把Ta

Python特殊语法:filter、map、reduce、lambda [转]

Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5,