快捷导航

自动点击京东商品价格条件,智能采集价格数据

2016-7-26 18:22| 发布者: ym| 查看: 4955| 评论: 1

摘要: 我们在购物网站浏览商品时,通常可以有多种组合的购买,对同一个商品选择颜色、尺码等等,会得到不同的价格。那么,如果把人的点击行为变成机器自动点击,要如何实现呢? 通过连续动作能够模拟人在浏览网页时的操作 ...

我们在购物网站浏览商品时,通常可以有多种组合的购买,对同一个商品选择颜色、尺码等等,会得到不同的价格。那么,如果把人的点击行为变成机器自动点击,要如何实现呢?

通过连续动作能够模拟人在浏览网页时的操作,从而逐个点击进行数据抓取。现在不少动态网页需要交互操作,才能浏览到最终数据,而连续动作的目的就是模拟人在浏览网页时的操作,从而得到最终显示出来的数据。

要模拟人的操作,我们首先要清楚是经过哪些交互操作才能显示出最终数据。例如浏览京东上小米Max的商品页面,我们是依次选择颜色、版本、购买方式1、购买方式2后,才能看到最终价格的,所以,按这个操作的话,要设置4步动作,这里的动作类型都是点击,明确了这些以后,下面教大家用MS谋数台的连续动作来做规则,实现自动点击。

根据上面的描述,有以下两种采集方案,下面我们采用方案1来实现自动点击和采集。

样本网址:https://item.jd.com/2897526.html                规则下载:京东商品_自动点击

注意:如果动作执行前后的网页结构没有变化,可以用一个规则来完成;网页结构前后变化的话,必须用两个或以上的规则来完成;另外涉及翻页的话,也要拆成两个或以上的规则。关于连续动作要做多少个规则请查阅文章《规划采集流程》。

一、建立第一级主题抓取目标信息

建立第一级主题的规则,把想要的信息映射到整理箱中,建议做完内容映射后,也做上定位标志映射,可以提高定位准确性和规则适应性。

注意:设置了连续动作的规则可以不建整理箱,例如方案2的第一级主题可以不建整理箱,但是用整理箱抓一点数据(选择网页上一定会显示出来的信息),是为了给爬虫判断是否执行采集,否则可能漏采网页。

二、设置连续动作

点击新建按钮建立一个新动作,每个动作的设置方法都是一样,基本操作如下:

2.1 输入目标主题名

连续动作指向的是同一个目标主题。如果有多个动作,并且要指向不同的主题,请拆成多个规则分别设置连续动作。

2.2 选择动作类型

本案例是点击动作,不同动作的适用范围是不同的,请根据实际的操作情况来选择动作类型。

2.3 把定位到动作对象的xpath填入到定位表达式中

  • 请明确动作对象的操作范围和数量,操作范围是指鼠标点选的有效范围,数量是指网页上可以施加该步骤动作的对象数量。
  • 编写xpath定位到该步骤动作对象的节点,这里的节点要覆盖动作对象的全部有效操作范围。
  • 校验xpath是否能准确定位到动作对象的操作范围和数量。把xpath填入到xpath搜索框中,再点击搜索按钮,可以统计网页节点的数量以及逐个查看。
  • 这里的xpath支持相对路径和绝对路径,但是不要定位到最底层的节点,例如text()、属性节点等,否则就不是全部的操作范围。

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

以上就是利用连续动作,模拟人工操作的全部过程,虽然过程比较繁琐,但是只要细心+耐心,最终都能攻克你想要爬取的网页。


若有疑问可以集搜客网络爬虫
4

鲜花

握手

雷人
2

路过
1

鸡蛋

刚表态过的朋友 (7 人)

相关阅读

发表评论

最新评论

评论 bigdatainfo 2016-10-12 16:58
如果某个组合暂时不能购买显示为灰色不可选时,爬虫会报错然后就停止了,有没有办法?
比如,可能金色的高配版暂时无货,则“金色”、“高配版”就不能点中,然后跑到这里时,爬虫就报错,然后就停止了,不会继续往下爬。

查看全部评论(1)

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2017-11-20 11:50