我正在使用Ruby on Rails和机械化库来抓取商店网站。问题是很多时候我不能抓取某些元素。然而,当我在网站上“查看源代码”时,我可以看到这一点。
例如,沃尔玛的类别(在这种情况下是“健康”)是不可推卸的。我相信这是因为它是动态生成的HTML (例如,从javascript)。为了解决这个问题,我需要一个浏览器来处理web请求。
http://www.walmart.com/ip/Replacement-Sensor-Module-for-AlcoMate-Prestige-Breathalyzer/10167376
我也在亚马逊EC2上使用linux机器。安装用于UI抓取的浏览器将会很困难。有没有什么Rails gem/plugin可以帮助我?
谢谢大家!!
发布于 2011-12-13 13:17:57
换句话说,你的问题是,有什么简单的方法可以像网页浏览器一样解析超文本标记语言文档的DOM,然后对解析的DOM执行文档中的JavaScript?而不运行实际的网络浏览器。
这有点棘手。
然而,并不是所有的都失去了。看看Capybara吧。尽管它是为验收测试而创建的,但您也可以使用它来对文档进行一般的摸索。要执行JavaScript,你需要使用一个支持它的驱动程序,因为你希望它是“无头的”(没有浏览器图形用户界面),这可能意味着要使用capybara-webkit、Akephalos或capybara-envjs。
另一个选择可能是Harmony,我对它一无所知,只知道它似乎做了你想做的事情,但也似乎不再维护了,所以YMMV。
https://stackoverflow.com/questions/8484305
复制相似问题