配套软件版本:V9及更低 集搜客网络爬虫软件
新版本对应教程:V10及更高 数据管家——增强版网络爬虫 的对应教程是《自动点击京东商品价格条件,智能采集价格数据》 我们在购物网站浏览商品时,通常可以有多种组合的购买,对同一个商品选择颜色、尺码等等,会得到不同的价格。那么,如果把人的点击行为变成机器自动点击,要如何实现呢? 通过连续动作能够模拟人在浏览网页时的操作,从而逐个点击进行数据抓取。现在不少动态网页需要交互操作,才能浏览到最终数据,而连续动作的目的就是模拟人在浏览网页时的操作,从而得到最终显示出来的数据。 要模拟人的操作,我们首先要清楚是经过哪些交互操作才能显示出最终数据。例如浏览京东上小米Max的商品页面,我们是依次选择颜色、版本、购买方式1、购买方式2后,才能看到最终价格的,所以,按这个操作的话,要设置4步动作,这里的动作类型都是点击,明确了这些以后,下面教大家用MS谋数台的连续动作来做规则,实现自动点击。 根据上面的描述,有以下两种采集方案,下面我们采用方案1来实现自动点击和采集。 样本网址:https://item.jd.com/2897526.html 规则下载:京东商品_自动点击 注意:如果动作执行前后的网页结构没有变化,可以用一个规则来完成;网页结构前后变化的话,必须用两个或以上的规则来完成;另外涉及翻页的话,也要拆成两个或以上的规则。关于连续动作要做多少个规则请查阅文章《规划采集流程》。 一、建立第一级主题抓取目标信息 建立第一级主题的规则,把想要的信息映射到整理箱中,建议做完内容映射后,也做上定位标志映射,可以提高定位准确性和规则适应性。 注意:设置了连续动作的规则可以不建整理箱,例如方案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。 以上就是利用连续动作,模拟人工操作的全部过程,虽然过程比较繁琐,但是只要细心+耐心,最终都能攻克你想要爬取的网页。 |