使用Nokogiri / Open URI获取动态生成的HTML

时间:2013-07-07 05:56:03

标签: ruby nokogiri open-uri

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

1 个答案:

答案 0 :(得分:4)

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

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

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