【问题标题】:Scraping a Dynamic Page Using Mechanize and Ruby使用 Mechanize 和 Ruby 抓取动态页面
【发布时间】:2016-02-27 08:12:02
【问题描述】:

我正在尝试通过机械化加载以下页面:

http://www.amazon.com/dp/B014R6MVH2

产品描述 div (div id="productDescription) 似乎是 javascript 驱动的部分,因此无法机械化。

有什么解决办法吗?也许我可以使用一个 gem 来执行 javascript 并查看该部分?

另一种选择是使用无头浏览器。我试过 selenium,但它比机械化慢得多。

【问题讨论】:

  • 欢迎来到 Stack Overflow。这在 Stack Overflow 和互联网上已多次介绍。你在哪里看过,你尝试过什么,为什么这些页面没有帮助?如果您进行一些搜索,您会找到问题的解决方案。
  • 你好。在发布这个问题之前,我已经查看了 Stack Overflow 和互联网。我之前在这里找到的最佳解决方案是使用 Execjs(一个 Ruby Gem)和 mechanize 来提取 javascript,但没有任何关于如何这样做的解释。其他人推荐使用无头浏览器,但 Selenium(例如)非常耗费资源,在性能方面无法与 mechanize 相比。

标签: ruby screen-scraping mechanize


【解决方案1】:

它对我有用:

agent = Mechanize.new
page = agent.get 'http://www.amazon.com/dp/B014R6MVH2'
page.at('#productDescription .content').text
#=> Description  This item is a simple and useful wedding banner....

【讨论】:

  • 谢谢 - 与默认机械化用户代理一起工作正常,但在使用自定义用户代理时停止工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多