提取数据-自定义定位元素方式
2017-06-30 15:06:45 阅读量: 25585
定位元素:八爪鱼通过Xpath来实现元素的定位。
适用情况:八爪鱼自动定位方式不能满足需求的情况。
下面演示如何通过自定义定位元素方式来修改元素匹配的Xpath,借此修改提取元素步骤采集到的数据。
示例网址:http://www.skieer.com/guide/demo/genremoviespage1.html
步骤一:点击自定义采集下的立即使用→输入网址并保存
步骤二:点击采集位置→循环采集元素→补充并修改提取元素步骤
说明:循环采集元素会采集所有信息,我们在补充并修改提取元素步骤进行了删除第一个字段操作,同时添加了我们需要的正确字段。
步骤三:修改自定义定位元素方式
选中要修改的字段→点击高级选项中自定义数据字段(如下图)→点击自定义定位元素方式
进入自定义定位元素方式后,我们在下图红框处修改Xpath
其中元素匹配的Xpath是指可以通过这个Xpath路径在网页中直接找到所需数据的路径;相对Xpath指相对于循环Xpath的路径,将循环中的Xpath接上相对Xpath路径就可以生成一条直接匹配元素的路径。下面进行演示。
演示中使用了火狐浏览器的Firebug插件,详细使用情况请到Xpath使用教程中查看。
如图,示例中将循环中的Xpath和字段对应的相对Xpath接在一起,在浏览器中可以查找到所有的标题。
假如我们想通过Xpath的修改采集其他的字段怎么采集呢?
下面演示如何通过自定义定位元素方式修改标题字段的Xpath使之采集的内容变成类型中的内容
步骤1.找出类型所在的Xpath是怎样的
说明:
我们知道循环中的内容为每个需要采集的内容所在的位置,我们将循环中的Xpath复制进入浏览器也看到匹配到了所有电影的框。
随后我们查看类型所在的Xpath,可以看到如下图:
查看到的Xpath为html/body/div/div/ul/li[1]/span[2]/span/span
步骤2.修改Xpath使之定位到所有的电影类型。
因为我们知道LI元素定位三个电影整体的框,所以我们将循环中的//LI[@class='movie']替换到类型所在的Xpath中,形成Xpath为:
//LI[@class='movie']/span[2]/span/span
元素前//表示不论LI在何处都匹配,所以可以省掉前面所有的元素。
此时我们的得到的Xpath就可以匹配所有的电影类型
可以看到该Xpath可以定位到红色箭头位置所示的3个元素,红框中也标出了类型,我们一共在该页只有三个电影,所以我们就得到了所有电影类型的Xpath。
步骤3.将得到的Xpath放入自定义定位元素方式中
说明:
复制元素匹配Xpath后,因为我们知道循环Xpath为LI元素,所以我们复制LI元素后的部分进入相对Xpath中。
通过手动运行三个电影验证标题是否改为类型,确定改变,会跟着变化,修改完成。
步骤四.保存并启动→数据导出