跳转到主要内容
我们在提取一批相似网址时,页面中的字段一般是在同一位置,通过同一条定位XPath可以将其全部匹配到。但是存在这样一种情况,同一字段在不同页面的位置略有不同。这种情况会导致数据字段缺失或者错位的情况,这个时候可以通过修改字段的xpath进行解决。 数据字段缺失:采集的某个字段,在A页可以正常采集,在B页采集为空。 示例网站: https://fgw.sh.gov.cn/fgw_zcjd/20220822/ab80c123e81840c688ade0caa2f21a11.html https://fgw.sh.gov.cn/fgw_zcjd/20220728/8802ea2324a643cbbfee5fc3b87dfad3.html Step1:按照需求,采集数据。这里我们采集这2个详情页文章的标题、时间、正文链接 Step2:启动采集看一下,第2个详情页的【时间】字段并未采集到。这是因为第2个详情页的网页结构和第1个不同,第1个详情页的【时间】定位XPath,不适用第2个详情页了。
Step3:我们可以通过设置备用位置xpath解决这个问题。 说明: 备用元素的设置可参考教程:设置备用位置 数据字段错位:采集页面的某个字段内容a,在A页可以正常采集到字段内容a,在B页采集的时候采集的时候,采集到的是字段内容b。 示例网址: https://baike.baidu.com/item/成龙/35974 https://baike.baidu.com/item/刘亦菲/136156 采集百度百科搜索人名后的信息,采集字段姓名、国籍、出生日期。 Step1:按照需求,采集数据。 Step2:切换网址观察数据预览,切换网址后观察每个字段获取的数据,可以发现国籍字段获取到了性别内容 Step3:修改【国籍】字段的xpath,用一个xpath准确唯一定的位到【国籍】内容,把国籍字段xpath修改为://div[@data-pid=“card”]//dt[contains(text(),“籍”)]/following-sibling::dd[1] 修改xpath之后,可以看到两个网页都可以正常定位到【国籍】字段内容了 说明: 这里修改xpath需要掌握xpath知识,xpath知识学习教程:Xpath入门