网站数据抓取软件DataScraper V4.x版本实现的周期性网站数据抓取允许DataScraper一天运行24小时并连续运行多天,而且是在无人值守情况下运行,所以,DataScraper必须能够有效地自主处理各种异常情况,确保网站抓取操作不间断运行。
从编程角度看,DataScraper必须自主应对各种程序错误和异常,例如,DataScraper程序本身抛出的异常;被抓取的网站网页错误引起的异常等等,后者发生频率十分高,尤其使用AJAX/Javascript技术编写的网页,很有可能存在javascript编程bug或者跨浏览器设计不周引入bug。DataScraper首先需要将所有异常截获住,进行有效的处理。另外,DataScraper在周期性抓取网站数据时不能弹出错误提示窗口,否则会终止数据抓取操作等待用户干预,而是将遇到的问题记录于日志文件中。
最容易导致网站数据抓取软件DataScraper停顿的问题是互联网通信质量变差,一般部署MetaSeeker企业版的用户不会遇到这个问题,但是,MetaSeeker免费在线版用户由于要访问公网上的MetaSeeker服务器,经常由于网络丢包造成TCP层通信状态错误,从而引起XMLHttpRequest等通信对象无法正确操作。
DataScraper V4.x版本针对以上问题一一提供应对措施,而且还提供最后一道防线:用于监视DataScraper运行状态的看门狗(watch dog)。DataScraper正常运行中,每个环节都会定时喂狗,也就是刷新$HOME/.datascraper目录下的某个文件,这个文件以周期性网站数据抓取会话的名字命名,每个DataScraper的周期性网站抓取线程维护各自的看门狗状态文件,如果发现在某个时间段内一直没有喂狗,DataScraper线程将重新启动。一般情况下不要手工删除看门狗状态文件,DataScraper会自动清理或者重建该文件。
手工启动和自动启动周期性网站数据抓取的看门狗的管理方法是不一样的,手工启动的情况下(通过点击排期菜单启动),看门狗由管理DataScraper(即,具有经典界面的DataScraper)管理,如果关闭管理DataScraper的窗口,手工排期的周期性抓取的看门狗失效。