美文网首页
爬虫之XPath的使用

爬虫之XPath的使用

作者: IT_小马哥 | 来源:发表于2019-05-19 20:56 被阅读0次

在网络爬虫中,对于HTML的解析,XPath是一种常用的方法。XPath 最初是用于XML中,其主要使用路径表达式在 XML 文档中进行导航。用于HTML中主要是因为HTML和XML非常的相似:
它们具有类似的文件结构。都有唯一的根元素。都采用标签的方式。
同时又有点不同:
XML可以自定义标签而HTML的标签是确定的
XML用于描述数据(和JSON一样)而HTML用于显示数据(经过浏览器处理)

XPath的解析需要依赖于"lxml"库。为了方便我们可以在谷歌浏览器安装XPath插件:xpath.crx 。使用xpath必须对HTML具有一定的了解。
用于网络爬虫的XPath主要使用以下语法:

操作 意义 示例 备注
./ 从当前结点开始 ./div 选取当前结点之后的直接结点div
// 从任意结点开始 //div 选取所有的div
@ 选取属性 //div[@class = "my"] 选取class = "my"的div结点
@ 选取属性 //div[@class] 选取所有有class属性的div
* 任意匹配 //div/* div元素下的任意元素

一般在爬虫中主要进行的操作如下:

操作 示例 备注
属性定位 //input[@class="bg s_btn"] 必须把类bg和s_btn全部写进去
索引定位 //div[@id=''head"]/div/div[2]/a[1] 索引下标起始是1
层级定位 //div[@id=''head"]/div/div/ 按照层级一级一级查找
逻辑运算 //input[@class="sss" and @id = "hhh"] 同时具有两个属性的元素
模糊匹配 //input[contains(@class,'s')] contains函数:class属性包含s的所有input元素
模糊匹配 //input[start_with(@class,'s')] start_with函数:以s开头的具有class属性的所有input元素
取文本 //div[@id='u1']/a[5]/text() 取第五个a元素的文本
取属性 //div[@id='u1']/a[5]/@href 取第五个a元素的属性

使用示例:

from lxml import etree #先导入库文件

XPath使用方法主要有两种:
(1)本地文件

tree = etree.parse("test.html")#写入本地文件的路径
ret  = tree.xpath('//div[@id="u1"]/a[5]/@href')#注意单引号和双引号的使用

(2)网络文件

r = requests.get(url)
tree = etree.THML(r.text) #注意这里是方法HTML(),并且放入对象的文本

XPath还可以用于返回的对象

#取返回class = "my"的div列表的第一个
first_div = tree.xpath('//div[@class = "my"]')[1]
#取出当前结点后所有具有class = "son"属性的div下的p的文本
p_text  =  first_div.xpath('.//div[@class = "son"]/p/text()')#注意双斜线前边的点

jsonpath的使用https://www.cnblogs.com/angle6-liu/p/10580792.html

相关文章

  • Python爬虫(十三)_案例:使用XPath的爬虫

    本篇是使用XPath的案例,更多内容请参考:Python学习指南 案例:使用XPath的爬虫 现在我们用XPath...

  • 爬虫之XPath的使用

    在网络爬虫中,对于HTML的解析,XPath是一种常用的方法。XPath 最初是用于XML中,其主要使用路径表达式...

  • 爬虫解析库XPath使用

    爬虫解析库XPath使用 1.XPath简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于...

  • xpath-函数的使用

    继上篇xpath使用后,接下来简单的就爬虫相关方面的关于xpath函数的使用! 1.xpath函数应用场景: 在爬...

  • day67-爬虫之xml及beautifulsoup

    1爬虫解析库的使用 Xpath解析库使用Xpath解析库需要先安装lxml库pip3 install lxmlBe...

  • 爬虫系列(十):使用xpath做爬虫

    案例:使用XPath的爬虫 现在我们用XPath来做一个简单的爬虫,我们尝试爬取某个贴吧里的所有帖子,并且将该这个...

  • 爬虫 xpath使用

    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path)...

  • 爬虫实战1.3.2 页面解析之Xpath

    本文转载:静觅 » [Python3网络爬虫开发实战] 4.1-使用XPath XPath,全称XML Path ...

  • 爬虫 之 xpath

    xpath是爬虫中一种分析页面数据的方法之一,可以补全非标准的html页面,方便获取数据,运用起来也比较简单, 首...

  • 爬虫入门(2)-使用Xpath抓取信息

    Python爬虫使用xpath要比re简洁高效的多。 简单例子 访问http://www.jikexueyuan....

网友评论

      本文标题:爬虫之XPath的使用

      本文链接:https://www.haomeiwen.com/subject/fhaqzqtx.html