怎样提高采集京东商城商品价格的速度

在建设商品比价系统或者监测网络商城商品价格时,需要及时地采集最新的商品价格,尤其做价格监测竞争情报系统时,监测的频度要求很高。网站信息采集软件工具包MetaSeeker以精准采集著称,很适合做竞争情报采集系统,因此多个企业用户采用MetaSeeker建设商品比价和价格监测系统。由于价格监测频度很高,所以商品价格采集速度十分重要,例如,很多MetaSeeker用户每天全站扫描两遍,而且同时监测国内全部主流网络商城,除了MetaSeeker的云计算架构予以支持外,还需要考虑一些提高速度的技巧。本文讲解怎样使用DataScraper企业版提高采集京东商城商品价格的速度。

DataScraper内核中集成了完整的Mozilla浏览器特性,因此,网页上的所有可见内容都能够采集,无论是静态的HTML文档上的内容,还是AJAX动态生成的内容。但是,在网络商城的网页上有大量的图片和Javascript代码,全部下载这些内容将大大影响商品价格采集速度。而在京东商城上,商品价格信息用图片显示,虽然可以在DataScraper直接集成图片识别代码,但是,很多时候,为了提高灵活性,我们采用只采集图片URL地址的方案,另外的程序代码负责图片下载和识别。如果采用后一个方案,在采集京东商城网页时就没有必要将图片下载下来。这样可以大大减少网络流量从而提高采集速度。

从V4.11.2版本开始,企业版DataScraper开放了一个GUI接口,用户可以选择是否下载图片或者其他媒体资源,参见DataScraper用户手册。如果设定成不允许下载图片,京东商城上的某段Javascript代码就会在价格显示位置放一个表示没有价格信息的图片,这样就采集不到正常的价格图片URL地址了。分析京东商城的网页源代码可以看到,每个IMG都有一个onerror事件处理程序,将IMG的src替换成一个没有意义的src。所以,当阻止下载图片的时候,必须同时阻止Javascript的执行。

同样是DataScraper企业版,还提供了另一个选项:是否下载和执行Javascript,参见DataScraper手册,当这些开关都关闭时,采集京东商城商品价格的速度大大提高。