php 采集网页 按xpath,网页数据采集相对XPATH使用教程 - 八爪鱼采集器

本教程适用于对八爪鱼自定义模式有定操作基础,且学习过 XPath 基础教程,能看懂并书写简单的 XPath 路径。否则,您可能无法看懂该教程,建议先掌握基础操作。

&version=v7.0

在 Xpath 语法中元素定位主要有两种方式

第一种:通过绝对路径做定位(定位较为死板)

By.xpath ( "html/body/div/form/input" )

第二种:通过相对路径做定位,两个斜杠代表相对路径

By.xpath ( "//input//div" )

示例:

需求:采集整个城市列表和其所对应的省份。

89efc5a060dd598417003545a4416a13.png

第一步:分析网页和需求

d2cb720b74e36c651a7e4e3fffe798df.png

从源码中可发现城市和省份并不是同一类型的元素,省份所在位置对城市而言有个相对位置。此外如果将城市和省份一同建立循环,也不便获取到省份与城市一一对应的数据样式,     故此处我们以城市建立循环。

第二步:创建任务,编辑规则

215e3b807a65365f018ba05bf3d1d1c3.png

以城市创建循环后,直接进行提取。手动执行到其他城市时,发现虽然城市信息能够准确提

取到,但是省份信息出现错乱。这是由于省份的 Xpath 设置不对,未能正确产生联动,使之和城市相关联。

21d33fe4cde3463ffb080fcef5603487.png

红框中为自动生成的 Xpath(//DIV[@class='outCont']/UL[1]/LI[1]/STRONG[1]),其每次固定定位到“直辖市”。根据需求省份要和城市相对应,所以在采集城市时,省份的 Xpath 要相对于城市而发生变化,形成联动而不是固定到某一个元素。

6c14cd36aae1a9597e0183e1cfcb07e7.png

首先我们回到循环中找到循环列表的 Xpath(.//*[@id='c02']/ul/li/a),复制该 Xpath 到火狐浏览器中。

29d496cb0ccc81ada626a353d8392291.png

在火狐浏览器中写出“省份”相对于“城市”列表(.//*[@id='c02']/ul/li/a)所对应的 Xpath

(/preceding-sibling::strong[1])。(Ps:以循环列表的 Xpath 为前缀,写出要采集字段的 Xpath)

b3a4c121c718b79a6b3b41ed2f43e7c0.png

在“省份”的元素定位方式中勾选上“相对 Xpath”,然后在输入框中粘贴之前写下相对 Xpath

(/preceding-sibling::strong[1]),最后确定保存。

6d5afe20f115c40cee8660bfd9293b46.png

手动执行检查验证,已能联动,正确提取到相应数据。

10ce67095d4195803ea49b67848a5a7d.png

本地采集结果

f3549a87302f83ce33776b8837e049d3.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值