分类: 系统运维
2011-01-11 10:48:01
MetaSeeker速成手册的前面几章都是关于当当网页抓取的。信息结构(对网页内容结构进行描述,用来生成网页抓取规则)demo_DD_list_1定义得比较完整,既从网页上抓取商品价格和其它信息外,还自动分页抓取。参照《分页抓取当当网价格》讲解的步骤,操作将所有信息一页一页抓取下来。但是,细心的读者可能会发现,当翻到最后一页的时候,DataScraper就停顿了,一直等到DataScraper窗口下部的日志中提示超时。究其原因,demo_DD_list_1和demo_DD_list_4都采用了记号线索定位用于翻页的超链接,网页底部的“下一页”就是记号。在最后一页上,“下一页”超链接是一段javascript代码,如下:
javascript:void(0);
所以,点击最后一页的“下一页”按钮,什么反应也没有,DataScraper自动模拟用户点击这个按钮后还以为网络延迟造成加载缓慢,所以一直等到超时。
上述问题可以不用改正,因为所有网页数据都分页抓取下来了,只是因为等待造成总体抓取速度变慢而已。本文讲解另外一种用于分页抓取的线索类型——相对线索。
我们以demo_DD_list_4为原型,将其加载到MetaStudio的工作台上后,改名为demo_DD_list_5。Bucket Editor工作台上的映射关系保持不变,只在Clue Editor工作台上修改线索抓取规则。
图1
图1显示如下步骤:
图2
同样做下一节点映射,最后结果如图2所示。至此,信息结构定义完成,上载到MetaSeeker服务器上,以便DataScraper随时随地使用由此信息结构生成的分页抓取规则。
DataScraper使用这个规则分页抓取到最后一页,会发现当前节点后面没有下一节点,即定位不到翻页按钮,就会停止分页抓取过程。