免费下载

八爪鱼采集器 - 最好用的网页数据采集器,超过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,v7.0 2017/7/5 16:02:02

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

文中示例地址为:http://b2b.huangye88.com/qiye2309554/

                      http://b2b.huangye88.com/qiye2275810/

提取两个网页中的公司名称和地址字段。

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

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

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

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

图1

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

图2

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

小贴士:安装成功之后,浏览器需要重启一下才能完全安装成功。重新打开浏览器中,可以看到多了一个昆虫按钮,代表安装成功。

在浏览器中打开一个网页,再点击浏览器中的firebug按钮,就弹出了可以用xpath的firepath工具。

1

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

点击firepath工具中“查看页面中的元素”按钮→选择网页中要提取的字段→可以看到firepath工具中显示出了xpath路径

2

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

 

步骤1 点击新建任务→自定义采集,进入到任务配置页面:

然后输入要采集的两个网址→保存网址,系统会进入到流程设计页面并自动打开前面输入的网址。

3

步骤2然后进行数据字段的提取,鼠标点击页面中要提取的“公司地址”字段,这里字段就被选中了并通过红色框表示,然后在弹出的提示框中选择“采集该元素的文本”表明要采集的是页面中的文本数据

同样的方式提取“公司名称”字段

4

步骤3 这样提取完毕之后我们可以点一下流程按钮,然后修改字段名称。这里的字段名称相当于表头,便于采集时区分每个字段类别。

在下面界面中修改字段名称,修改完成之后,点击“确定”保存

5

步骤4点击“保存并启动”,再在弹出的对话框中选择“启动本地采集”

系统会在本地电脑上开启一个采集任务并采集数据,任务采集完毕之后会弹出一个采集结束的提示,可以看到采集完之后第二条数据的公司地址采集是错误的,采集到的并不是公司地址而是主营产品。

6

步骤5 这时候回到客户端上手动执行这个规则,选择第二条URL,再点提取数据可以公司地址就本身提取到的是主营产品。

7

步骤6 这里可以把八爪鱼生成的xpath复制到火狐浏览器中去看,可以看到在第一个URL中匹配是对的,但是在第二个网页中匹配就是错误的

8

这时就说明是xpath出了问题,我们可以直接通过火狐生成的xpath获取数据

9

这时通过火狐获取的xpath,如果没有问题也可以直接复制到八爪鱼里,但是这条xpath换到前面的网页也会匹配不到数据,这时候就需要手动到火狐里进行调试了,需要一条两个网页都能正确匹配的xpath,查看下面的源码可以看下都有公司地址:这几个字

图3

通过“公司地址:”这个共同点可以手动写一条xpath。

在xpath中匹配文本的函数是text()

//代表所有html里面所有的节点作为对象选择 //li代表匹配所有li标签,注意后面的[]里面的条件是对所选择对象特征的进一步限制,所以整个//li[text()='公司地址:']的意思就是选择包含文本为公司地址:的所有节点,由于这个网页就只有一个,所以就匹配了这一个节点。

图4

然后把这条xpath复制到八爪鱼中去即可

10

可以看到数据就正常的跑出来了,而且是需要的公司地址数据。



分享到: 更多
人工服务

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

粤公网安备 44030502000701号