自动Web抓取问题

时间:2011-09-19 15:19:27

标签: ruby mechanize watir ole phantomjs

我正在开发一个相当大的自动化应用程序来从各种状态数据库中搜集各种废弃的属性信息,以便找到特定的属性。我已经使用各种形式的自动化为大约8个州的网站开发了搜索脚本。我更喜欢使用类似ruby的Mechanize库来执行自动化,因为它是迄今为止我遇到的最稳定的方法。在某些情况下,我无法使用Mechanize自动进行抓取,并且必须回退到类似Watir(或更具体地说,Watir的分支称为Vapir)。当源需要搜索javascript时,特别需要Vapir,因为Mechanize只发出HTTP请求而不处理JS解释。

我的问题是Vapir自动化Internet Explorer实例。在某些情况下,经过长时间搜索(其中一些搜索是针对4,000多个搜索词的列表),IE会锁定。我认为它是OLE引擎的问题。我收到的错误如下:

failed to create WIN32OLE object from `InternetExplorer.Application' HRESULT error code:0x80004005 Unspecified error

我无法找到解决此问题的任何内容。

我的问题是,是否有人知道任何解决方案或解决自动OLE实例锁定?要修复错误,我必须手动终止所有IE进程并重新启动自动搜索。

我所知道的替代方案是在后端(而不是IE)通过Vapir自动化Firefox,或者可能切换到PhantomJS之类的东西。有没有人对这两种选择都有意见?

1 个答案:

答案 0 :(得分:0)

你有使用Vapir的原因吗?为什么不尝试watir(驱动Internet Explorer)或watir-webdriver(驱动Internet Explorer,Firefox,Chrome和Opera)宝石?

有关安装,请参阅https://github.com/zeljkofilipin/watirbook/blob/master/installation/windows.md