html - 最佳网页抓取 Ruby on Rails 库,可处理由 javascript 生成的动态 HTML

标签 html ruby-on-rails dynamic rubygems web-scraping

我正在使用 Ruby on Rails 和 Mechanize 库来抓取商店网站。问题是很多时候我无法抓取某些元素。但是,当我在网站上“查看源代码”时,我可以看到这一点。

例如,沃尔玛的类别(在本例中为“健康”)是无法转义的。我相信这是因为它是动态生成的 HTML(例如来自 javascript)。为了抓取这个,我需要一个浏览器来处理网络请求。

http://www.walmart.com/ip/Replacement-Sensor-Module-for-AlcoMate-Prestige-Breathalyzer/10167376

我还在 Amazon EC2 上使用 Linux 计算机。安装用于 UI 抓取的浏览器会很困难。有任何 Rails gem/插件可以帮助我吗?

谢谢大家!!

最佳答案

换句话来说,您的问题是,解析 HTML 文档的 DOM 的简单方法是什么?就像 Web 浏览器一样,然后根据解析的 DOM 执行文档中的 JavaScript?无需运行实际的网络浏览器。

这有点棘手。

但是,一切并没有失去。看看Capybara 。虽然是为验收测试而创建的,但您也可以将其用于文档的一般处理。要执行 JavaScript,您需要使用支持它的驱动程序,并且由于您希望它是“ headless ”(无浏览器 GUI),这可能意味着使用 capybara-webkit , Akephaloscapybara-envjs .

另一个选项可能是 Harmony ,我对此一无所知,只是它似乎做了你想做的事情,但似乎不再被维护,所以 YMMV。

关于html - 最佳网页抓取 Ruby on Rails 库,可处理由 javascript 生成的动态 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8484305/

相关文章:

ruby-on-rails - rails - 导出一个巨大的 CSV 文件会消耗生产中的所有 RAM

c#-4.0 - C#中动态和T的实际区别是什么

c++ - 动态分配列表中的访问元素

html - android浏览器(webkit)select-multiple的元素在被选中时消失

jquery - 鼠标 x 移动动画

html - 根据单击的按钮更改文本内容

ruby-on-rails - Ruby on Rails 平均水平?

ruby-on-rails - Rails 获取序列化模型记录

javascript - 如何进行响应式设计,使 H2 在 1 行 DIV 中获得最大字体大小?

html - 如何从 SAP HTML Viewer 打开 javascript 开发人员控制台