免费下载

八爪鱼采集器 - 最好用的网页数据采集器,超过40万用户首选网页采集软件

  1. 软件版本:V6.4.3
  2. 支持系统:32/64位 XP / Vista / Win7 / Win8 / Win8.1 / Win10
  3. 更新日期:03月22日 (新版功能)
免费下载
微信订阅号:八爪鱼采集器Live
扫一扫,关注我们
教程 | 功能点 | 实战案例
官方论坛解答
点击提问
免费版QQ群
1群:470619317 点击加入
2群:148686415 点击加入
专业版QQ群
3群:135071723 限专业版用户
2群:385161018 限专业版用户
1群:475423041 限专业版用户
旗舰版QQ群
3群:196097783 限旗舰版用户
2群:286777906 限旗舰版用户
1群:130849246 限旗舰版用户
站长采集交流群QQ群
2群:304456535 点击加入
1群:492396817点击加入
down

xpath入门【1】

标签: 进阶教程,xpath,进阶 2015/8/13 12:31:28

本文用来讲解xpath的入门基础,适合对八爪鱼已经有一些基础的用户来学习。

Xml和Html之间既有相似之处,又有很大区别。Xml包含数据和对数据的描述,主要用来交换数据。Html也包含了数据和对数据的描述,但只是针对描述网页这种用途,Html结构看起来和Xml类似,但并不严格遵循Xml标准,可以看做不标准的Xml。

Xpath是专门针对Xml设计的,在复杂结构化数据中查找信息的语言,而我们的网页实质上是Html的文档,那如何对网页执行Xpath查询呢?八爪鱼采集器内部有一套针对Html的Xpath引擎,使得直接用Xpath就能精准的查找定位网页里面的数据。

给大家介绍一个类似的工具,就是火狐浏览器里面firebugfirepath插件。

首先在电脑上先安装火狐浏览器,然后打开火狐浏览器右上角的打开菜单按钮,选择添加组件。

图片1

在弹出的对话框中搜索firebug组件,搜索出来之后选择安装。

图片2

 

安装成功之后同样的方式搜索firepath进行安装。

 

注意安装成功之后,浏览器需要重启一下才能完全安装成功。重新打开浏览器中,可以看到多了一个昆虫按钮,代表安装成功。然后在浏览器中打开一个网页,再点击这个昆虫按钮,就弹出了可以用xpath的工具。

 

图片3

按照下面的操作可以找到数据的精确位置。

图片4

这种定位方式在八爪鱼采集器里面也是通用的,例如:

在采集器里面新建一个任务进入到流程配置页面之后,,往流程设计器中拖入一个打开网页的步骤;选中浏览器中的打开网页步骤,在右边的页面URL中输入网页URL并点击保存,系统会在软件下方的浏览器中自动打开对应网页:

图片5

下面进行数据字段的提取,点击浏览器中需要提取的字段,然后在弹出的选择对话框中选择抓取这个元素的文本;例如抓取网页里面的2013年这个数据

图片6

上述操作之后,系统会在页面的右上方显示我们将要抓取的字段;

图片7

如果我们不想抓2013年这个数据,比如想要下面的人均GDP后面的字段,这时可以通过修改xpath把上面的2013年改成下面的41908元这个数据。点击上图中自定义数据字段按钮,在弹出的对话框中选择自定义定位元素方式。

图片8

点击自定义定位元素方式之后,可以把之前火狐浏览器显示的xpath替换现有的路径。

 图片9

之前火狐浏览器显示的xpath如下图

图片10

复制进去如下图,再点击确定。

图片11

复制进去之后可以看到下图中的数据已经变为41908元不是之前的2013年了。

图片12

我们复制进去的xpath路径为.//*[@id='gdp'],这个路径是什么意思呢?先看下下面的html代码

图片13

前面的.代表以当前位置开始选择 这个.是可有可无的,如在火狐里面直接把这个.去掉也是正常的,可以看下图也是可以精确定位的。

图片14

//代表所有html里面所有的节点作为对象选择 *代表匹配任何类型的标签,注意*后面的[]里面的条件是对所选择对象特征的进一步限制,看到上图蓝色区域所示的41908元那一行区域,有idclass两个属性。而@的意思就是选取属性。

所以整个.//*[@id='gdp']的意思就是选择包含属性id=’gdp’的所有节点,由于这个网页就只有一个,所以就匹配了这一个节点。

除了火狐浏览器可以自己显示出xpath,我们也可以自己写比如看上面的代码,比如我们需要采集增长幅度的7.2%html代码是<span id="rate">7.2%</span>  首先是//开头,然后是span节点  写成//span,如果这样,我们在火狐浏览器里面可以验证一下。

图片15

如上图所示,输入这个xpath之后显示出了两条。因为页面里面有两个span。如果我们需要精确定位第二个7.2%的数据,可以用@属性给span做个特征识别或者直接给个序号。例如//span[2]//span[@id=’rate’]

图片16

图片17

在火狐浏览器里面验证都是定位到了第二行,直接把这个xpath复制到八爪鱼中图片18

复制之后点击确定,数据已经由之前的41908变为7.2%啦。

图片19

 

 

 

 



分享到: 更多
人工服务

立即下载,体验更高效简单的数据收集吧! 免费下载

粤公网安备 44030502000701号