5

我试图通过在 Chrome 中查看其 HTML 并使用 Nokogiri 抓取数据来抓取网站。问题是某些标签是动态生成的,在使用 open-uri 时它们不会出现在 open(url) 请求中。有没有办法“强制”网站动态生成其内容,以便像 open uri 这样的工具读取?

4

1 回答 1

4

如果通过 open-uri 读取它不会产生您需要的内容,那么客户端很有可能使用 Javascript 生成内容。

这可能是个好消息 - 通过检查页面发出的 AJAX 请求,您可能会找到您正在寻找的内容的 JSON 提要,然后您可以直接请求和解析它。这将使您获得您的数据,而无需通过 HTML 进行挖掘 - 方便!

但是,如果由于某种原因这不起作用,您将需要使用某种浏览器打开页面,让它执行其客户端 Javascript,然后将生成的 DOM 转储为 HTML。像PhantomJS这样的东西是这类工作的绝佳选择。

于 2013-07-08T03:33:37.653 回答