Python学习笔记(20)自动点击京东产品的价格状况并智能地采集价格数据
优采云 发布时间: 2020-08-07 19:49**注意: **如果在执行操作之前和之后网页结构没有变化,则可以通过一条规则来完成;如果网页结构在前后变化,则必须通过两个或更多规则来完成;另外,如果涉及翻页,则分为两个或更多规则. 有关连续操作的规则数量,请参阅“计划获取过程”一文.
1. 建立第一级主题以获取目标信息
建立第一级主题的规则,然后将所需的信息映射到排序框. 建议在完成内容映射后,还应进行定位标记映射,以提高定位精度和规则适应性.
**注意: **如果您设置了连续操作规则,则无需构建排序框. 例如,方案2的第一级主题不需要构建排序框,而是使用排序框来获取一些数据(选择页面一定会显示该信息)供爬虫程序确定是否执行采集,否则可能会错过网页.
二,设置连续动作
单击“新建”按钮创建一个新动作,每个动作的设置方法相同,基本操作如下:
2.1输入目标主题名称
连续动作指向同一目标对象. 如果有多个操作,并且您要指向不同的主题,请将它们分成多个规则并分别设置连续的操作.
2.2选择操作类型
这种情况是单击操作,并且不同操作的应用范围不同. 请根据实际操作情况选择动作类型.
2.3将位于动作对象的xpath填充到定位表达式中
2.4输入动作名称
告诉自己该步骤的用途,以便稍后进行修改.
2.5高级设置
不必先设置它,以后在调试连续动作时将使用它,这可以扩大适用的动作范围. 如果要捕获操作对象的信息,请使用xpath在高级设置的内容表达式中找到操作对象的信息. 请根据需要进行设置.
**注: **是否选择了动作类型以及xpath定位是否正确,请确定连续动作是否可以成功执行. Xpath是用于定位html节点的标准语言. 使用连续动作功能之前,请先掌握xpath.
根据人工步骤,我们还需要选择版本,购买方式1,购买方式2,因此我们将继续创建3个新操作并重复上述步骤.
三,调试规则
完成上述步骤后,单击“保存规则”,然后单击“爬网数据”按钮以开始试用捕获. 采集期间报告了一个错误: 无法找到节点***. 观察浏览器窗口,发现单击第一步后,未加载其他信息. 加载信息后,发现单击购买方法2后,无法返回执行四步单击的页面,从而导致连续执行连续动作.
鉴于上述情况,我们的解决方案是删除第四步. 因为无论您是否单击购买方法2,它都不会影响产品的价格. 因此,可以删除不必要的干扰步骤.
修改后,尝试再次捕获. 将提取的xml转换为excel后,我发现价格和累积评估数据被捕获或捕获不正确. 这是因为网页太大,加载速度太慢,并且单击后的数据将必须等待一段时间才能加载.
为了捕获所有数据,您需要延长等待时间并分别为每个操作设置延迟. 单击操作步骤->高级设置->额外延迟,然后输入以秒为单位的正整数. 请根据实际情况进行调试.
此外,如果不是顶部窗口,则在采集时将反复单击它. 这是因为京东网站上有一些防爬措施,这些措施必须是当前的窗口操作才能生效. 因此,请检查该窗口在高级设置中是否可见,并且在采集过程中该窗口将位于顶部. 请根据实际情况进行设置.
四个. 如何将捕获的信息与操作步骤一一对应?
如果要将捕获的信息与操作步骤一一对应,则必须提取操作对象的信息. 有两种方法:
4.1使用xpath在连续操作的高级设置的内容表达式中找到操作对象的信息节点.
在将定位表达式定位到动作对象的整个操作范围之后,它还收录其自己的信息. 因此,内容表达仅需要从定位的动作对象开始,并继续定位到其信息. 采集时,此步骤的信息将记录在actionvalue中,该值对应于actionno,后者记录该步骤的执行次数.
4.2在整理框中获取动作对象的信息,这里也使用xpath进行定位.
执行动作对象时,其dom结构将更改. 找到网页更改的结构特征,使用xpath精确定位节点,并在通过验证后,可以设置自定义xpath.