Python手动点击易迅商品价钱条件,智能采集价格数据!
优采云 发布时间: 2020-08-10 08:17注意:如果动作执行前后的网页结构没有变化,可以用一个规则来完成;网页结构前后变化的话,必须用两个或以上的规则来完成;另外涉及翻页的话,也要拆成两个或以上的规则。关于连续动作要做多少个规则请查阅文章《规划采集流程》。
一、建立第一级主题抓取目标信息
建立第一级主题的规则,把想要的信息映射到整理箱中,建议做完内容映射后,也做上定位标志映射,可以提升定位准确性和规则适应性。
注意:设置了连续动作的规则可以不建整理箱,例如方案2的第一级主题可以不建整理箱,但是用整理箱抓一点数据(选择网页上一定会显示下来的信息),是为了给爬虫判定是否执行采集,否则可能漏采网页。
二、设置连续动作点击新建按键构建一个新动作,每个动作的设置方式都是一样,基本操作如下:
2.1 输入目标主题名
连续动作指向的是同一个目标主题。如果有多个动作,并且要指向不同的主题,请拆成多个规则分别设置连续动作。
2.2 选择动作类型
本案例是点击动作,不同动作的适用范围是不同的,请按照实际的操作情况来选择动作类型。
2.3 把定位到动作对象的xpath填入到定位表达式中
2.4 输入动作名称
告诉自己这一步动作是拿来干嘛的,方便之后更改。
2.5 高级设置
最初可以不设置,后面调试连续动作时会用到,可以扩大动作的适用范围。如需把动作对象的信息也抓出来,就在中级设置的内容表达式中用xpath定位到动作对象的信息来实现,请依照须要再来设置。
注意:动作类型是否选对以及xpath是否定位确切,决定了连续动作能够执行成功。Xpath是标准的用于定位html节点的语言,请自行把握xpath后再来使用连续动作的功能。
按照人的操作步骤,还要选择版本、购买方法1、购买方法2,所以,我们还要继续新建3个动作,重复以上步骤。
三、调试规则
完成以上步骤后,点击保存规则,再点击爬数据按键进行试抓。发现采集时报错:无法定位到节点***,观察浏览器窗口,看到执行完第一步点击时,其他信息都没加载上来,等到信息都加载上来,又发觉点击了订购方法2后,就难以回挪到执行4步点击的页面,这就造成连续动作没法连贯执行。
针对里面的情况,我们的解决方式是删除第4步动作。因为无论是否点击订购方法2,都不影响商品价钱。所以,可以删除没必要且引起干扰的动作步骤。
修改后再度试抓,把提取到的xml转为excel后,看到价钱和累计评价的数据抓漏或抓错了。这是因为网页很大,加载比较慢,点击后的数据要等待一定时间才会加载完成。
为了抓全数据,需要延长等待时间,给每位动作单独设置延时,点击动作步骤->高级设置->额外延时,输入正整数,单位是秒。输入的时间请按照实际调试。
另外,如果不是置顶窗口,采集时会循环点击。这是因为易迅网页上有反爬举措,必须为当前窗口的操作才能生效。所以,要在中级设置上勾上窗口可见,采集时窗口会置顶。请按照实际情况进行设置。
四、如何把抓到的信息与动作步骤一一对应?
如果希望把抓到的信息与动作步骤一一对应上去,这样就得把动作对象的信息也提取出来,有以下两种方式:
4.1 在连续动作的中级设置的内容表达式中用xpath定位到动作对象的信息节点。
在定位表达式早已定位到动作对象的整个操作范围,也包括其本身的信息,所以,内容表达式只需从定位到的动作对象为起点,继续定位到其信息就行。采集时都会把该步动作的信息记录在actionvalue中,与之对应的是actionno,记录的是该步动作执行的次数。
4.2 在整理箱中抓取动作对象的信息,这里同样要用xpath来定位。
动作对象被执行时,其dom结构是有变化的,找到网页变化的结构特点,用xpath确切定位到节点,通过校准后,就可以设置自定义xpath。