如何从网站中提取动态生成的HTML?

时间:2014-07-21 12:03:24

标签: javascript html ruby-on-rails web-crawler

是否可以在Firebug或Chrome DevTools的HTML面板中显示页面的HTML?

我必须抓取很多网站,但有时信息不在静态源代码中,即在加载页面后运行JavaScript并动态创建一些新的HTML内容。如果我然后提取源代码,那么这些内容就不存在了。

我有一个用Java构建的网络爬虫来做这件事,但它使用了很多旧的库。因此,我想转向Rails / Ruby解决方案用于学习目的,我已经使用Nokogir i和Mechanize进行了一些演示。

2 个答案:

答案 0 :(得分:1)

如果抓取工具能够执行JavaScript,您只需使用document.firstElementChild.outerHTML获取动态创建的HTML结构。

虽然NokogiriMechanize目前能够解析JavaScript。看到 Ruby Nokogiri Javascript ParsingHow do I use Mechanize to process JavaScript?就此而言。

因此,您需要其他工具,例如WATIRSelenium。那些驱动真正的Web浏览器,因此可以处理任何JavaScript。

答案 1 :(得分:0)

您无法获取来自数据库端的记录。您只能获取静态的HTML代码。

Javascript必须通过查询请求从数据库请求记录,而爬行程序无法获取该记录。