我们在提取一批相似网址时,页面中的字段一般是在同一位置,通过同一条定位XPath可以将其全部匹配到。

但是存在这样一种情况,同一字段在不同页面的位置略有不同。此时,我们可以尝试通过备用位置解决。例如,一个字段,在A页面和B页面的位置不同,那么可以用A页面字段的位置做规则提取字段,然后将B页面字段的位置设为备用位置。这样,AB两个页面的字段就都能被提取到。

 

示例网站:

https://www.toutiao.com/a6810131150799897102/
https://www.toutiao.com/a6810150273776878087/

 

Step1:按照需求,采集数据。这里我采集这2个新闻详情页的标题、是否原创、时间

 

 

Step2:启动采集看一下,第2个新闻详情页的时间并未采集到。这是因为第2个新闻详情页没有 原创 字段,因此 时间字段位置向前移了一点,发生改变。时间字段移动后,第1个详情页的时间定位XPath,不适用第2个新闻详情页了。

 

 

Step3:我们可以通过设置备用位置,解决这个问题。

将鼠标移动到【循环】步骤上,点击  按钮,选择第2个网址,点击【应用】,再点击【打开循环中的网页】,打开第2个新闻详情页。

将鼠标移动到【提取数据】步骤上,点击  按钮,再点击【时间】字段后的  按钮,勾选【尝试备用位置】,然后鼠标选中输入框

然后选中页面中的【时间】字段,在弹出的操作提示框中,选择【将这个元素设为备选】,可以看到,输入框自动填充了定位XPath。点击2次【应用】保存。

 

 

Step4:启动采集看一下,2个新闻页的时间字段都被正常采集下来了,备用位置设置成功。

 

 

注意:备用位置仅适合变化情况较少的网页。若网页变化过多,情况复杂,建议通过修改XPath来解决漏字段问题。

以上示例也可以通过修改XPath解决。查看 字段提取不到,字段提取错位如何处理?