1. 什么时候需要弹窗模式 【注意】一定要学会识别什么是弹窗,什么不是弹窗。否则,定义的采集规则将无法正常运行。 1.1 什么不是弹窗 如上图,访问GooSeeker网络爬虫官网的时候,有可能会看到弹出这样一个框。在一些其他网页上,这个框可能很大,甚至盖住整个页面。这个弹框也有关闭按钮。但是,我们称之为“框”,而不是“窗”。 这个框就是悬浮在当前网页上的一个html区域,是属于本网页html的。所以,定义爬虫采集规则的时候,采集这个框里面的内容跟采集本网页上的内容没有什么两样。 【注意】采集弹框中的内容千万不能勾上“弹窗模式”。 1.2 什么才是弹窗 如上图,在GooSeeker网络爬虫官网上,选择菜单“微博内容分析”,就会看到浏览器打开了一个新窗口。在浏览器顶部,每个窗口都有一个“页签”,就像办公室里存放文档的文件夹,每页纸上贴一个伸出来的页签,方便查阅。浏览器这样打开网页的方式就是“弹窗模式”。 1.3 无法使用层级采集的时候才用弹窗模式 【注意】尽量不要使用网络爬虫的弹窗模式,因为弹窗模式运行负担很重,容易失败。 几乎在所有的电商网站的搜索结果列表上点击一个商品就会弹出一个新窗口,显示商品详细信息。但是,绝大多数情况下不需要弹窗模式。如下图: 点击上图所示的商品列表中的某个商品,看到了弹出一个详情页窗口。但是,我们进入定义爬虫规则模式观察一下列表页(点击界面上左边栏最顶上的+号按钮),再次点击那个商品,可以看到界面底部的DOM树展开了,自动定位到一个html的A元素节点,观察左下部的“查看网页元素”区域,可以看到A元素有@href属性,这里面存了详情页的网址。 把这个网址拷贝出来,手工打开浏览器的一个空白窗口,把这个网址手工拷贝到网址输入栏里面,点回车键,如果详情页能正常显示出来,这就证明在列表页上每个详情页有独立的网址。在这种情况下,【不要用弹窗模式,而是要用层级采集】,具体参看教程《爬网址做层级采集——以当当商品爬虫为例》。 2. 弹窗模式的使用方法 前面说了尽量采用层级采集而不用弹窗模式。我们看一下不得不用的情况。如下图 在这个网站上,无法找到每个商品的A链接。就可以考虑使用弹窗模式了。 【注意】这个网站还可以避免使用弹窗模式,通过采集sku的方法,把详情页网址在excel中批量构造出来。这个方法将在另一个教程中讲解。在这里我们作为弹窗模式的样板做讲解。 即使网页上没有A元素,我们仍然可以定义点击动作,连续点击每个商品。同时需要勾上“弹窗模式”这个选项(如上图)。这样第一级规则就定义好了。 然后定义第二级规则,一定要注意:第二级规则的任务名一定要与第一级规则填写的“动作后执行”任务名一致。 两级规则定义好以后,只执行第一级规则。就会看到爬虫会挨个点击商品,每个商品弹出一个新浏览器窗口,等爬虫采集完成后,爬虫会自动关闭那个新弹出的窗口。 【注意】爬虫运行过程中不要手工关闭爬虫弹出的窗口 怎样为爬虫任务定义连续点击动作,请参看教程《自动点击京东商品价格条件,智能采集价格数据》 3. 什么情况下使用回退模式 假设网页上显示一个列表,当点击列表中一条信息时,当前页面的内容就变成了这条信息的详细内容。当用户看完这条内容后想回到先前的列表,就需要点击浏览器的回退按钮。数据管家浏览器的回退按钮如下图: 【注意】我们使用集搜客 社区->使用交流 为例演示怎样回退,实际上,要采集这些使用交流内容并不需要使用点击和回退动作,因为每一条信息都有独立网址,使用层级采集更加稳定可靠。只有在网页html上找不到每条信息的超链接(A元素节点)的时候,才不得不用回退。 4. 回退模式的使用方法 跟弹窗模式一样,也要定义两级规则。第一级负责点击列表中的某一条内容。也就是说,要在工作台的第4步那里定义一个点击动作,该动作负责逐个点击列表中的条目。 第二级规则要在一条点开的详情页上定义。先按照普通定义规则方法把要采集的字段都标注好。然后,进入工作台的第4步:设置动作,创建一个动作,选择“回退”类型。输入目标任务名,就是第一级规则的名字。如下图 这样就把规则定义好了。运行的时候,只能运行第一级,不能运行第二级,因为在第一级上会自动点击打开第二级网页,然后自动回退到第一级,形成一个采集循环。 |