配套软件版本:V10及更高 数据管家——增强版网络爬虫 老版本对应教程:V9及更低 集搜客网络爬虫 的对应教程是《连续动作:自动选择下拉菜单采集数据—以知网为例》 以中国知网的期刊为例,演示怎样从年份的下拉菜单中选择2016年,然后点击搜索按钮,搜索2016年的期刊。总共要做三个动作,动作1和2在下拉菜单中选择2016,动作3点击搜索。 为了实现这个自动采集,需要建立两级任务,第一级任务通过连续动作来自动选择年份和点击搜索,第二级任务负责采集搜索结果,即期刊内容。 案例: 第一级采集规则:中国知网期刊检索前 第二级采集规则:中国知网期刊检索后 样本网址:http://epub.cnki.net/kns/brief/result.aspx?dbprefix=CJFQ 采集内容:每一篇文献的标题、作者、刊名、年期、被引、下载 1. 定义第一级任务 1.1 打开网页,进入任务定义状态 1.2 标注一个字段 在第一级任务的页面,没有我们要采集的字段。但是爬虫需要知道网页是否正确加载出来了,所以需要至少抓一个字段。字段的标注操作见《采集网页数据》。 1.3 设置动作 转到工作台4,新建动作。动作类型是“选择”。 动作后,执行的目标任务是“中国知网期刊检索后”。 1.3.1 第一个下拉菜单选择2016 点击一下起始年份,在下面的DOM窗口会自动定位到相应节点。这个节点有特殊的id属性:year_from ,所以 “生成XPath“选择”偏好id”。 xpath生成后,点击搜索,可以看到只定位到了当前这个节点,所以是正确的xpath。复制拷贝到交互位置。在动作名称写上文字,是为了方便清楚每个动作的用处。 起始时间框对应SELECT节点,它的下级有很多option节点,每个option对应一个具体的年代,第41个option对应2016,所以在高级设置里起点选择41。 跨度10是什么意思?就是隔10个option再去选择,本例只想选2016,所以跨度选择了一个比较大的数10,因为没有第51个option。 另外上图中,额外延时2秒,表示做完这个动作后延迟2秒再去做第二个动作,是为了避免动作做得太快而页面还没做出反应导致采集失败。下面两个动作,都选择了额外延时2秒。 Tips:选择类型的连续动作,定位表达式必须写到下拉菜单的select节点,而不能写到某一个选项的option节点,否则运行时会报错。 1.3.2 第二个下拉菜单选择2016 在第二个下拉菜单中,选择到2016。操作过程与起始年份选择类似。 1.3.3 点击搜索按钮 第三个动作是点击动作。 1.4 测试,保存第一个任务 到工作台2,测试,保存第一个任务。现在不要启动采集数据,因为第二级任务还没有做。 2. 退出第一级任务 橙色的退出按钮在浏览器的右上方。 3. 定义第二级任务 3.1加载出要采集的页面 在网页上搜索2016年期刊,加载出要采集的页面。然后,点击+号,进入第二级任务定义状态。第二级任务的名字要与第一级任务中指定的下级任务名一致。 3.2 标注字段,样例复制和翻页设置 知网的期刊搜索页面是典型的带翻页的列表页面。可以按初级教程里的《采集网页数据》,《采集列表数据》《翻页采集》来定义任务。完成后,测试保存第二级任务。 4. 启动任务,采集数据 第一级和第二级任务都定义完成后。去任务管理页面。 启动第一级任务,采集数据。注意,不用去启动第二级任务,它会自动执行。 期刊搜索结果有很多页,如果想要采集快点结束,可以在启动采集,限制翻页次数。 采集过程中,可以看到在采集窗口,自动选择了2016年,并自动点击搜索,搜索结果加载出来,然后一页页翻页采集。 采集完成后,按采集窗口的提示,导出excel。 本例采集到的样本数据。 |