免费下载

八爪鱼采集器 - 最好用的网页数据采集器,超过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群
2群:135071723 限专业版用户
1群:385161018 限专业版用户
旗舰版QQ群
2群:286777906 限旗舰版用户
1群:130849246 限旗舰版用户
站长采集交流群QQ群
2群:304456535 点击加入
1群:492396817点击加入
down

xpath入门教程1

标签: xpath,v7.0 2017/7/5 16:02:02

本文用来讲解xpath的入门基础,适合对八爪鱼已经有一些基础的用户来学习,本文以采集黄页88企业信息举例说明。


文中示例地址为: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号