【发布时间】:2012-05-23 11:06:05
【问题描述】:
我正在使用 Mechanize,但如果 Mechanize 做不到,我愿意接受 Nokogiri。
我想在所有脚本加载后而不是预先加载页面。
我该怎么做?
【问题讨论】:
标签: javascript ruby screen-scraping nokogiri mechanize
我正在使用 Mechanize,但如果 Mechanize 做不到,我愿意接受 Nokogiri。
我想在所有脚本加载后而不是预先加载页面。
我该怎么做?
【问题讨论】:
标签: javascript ruby screen-scraping nokogiri mechanize
我对机械化或 nokogiri 一无所知,所以我无法具体评论它们。但是,修改后获取 JavaScript 的问题我认为只能通过更多的 JavaScript 来解决。为了获取新生成的 HTML,您需要获取文档元素的 .innerHTML。这可能很棘手,因为您必须将 js 注入页面。
我知道的唯一方法是编写一个 FireFox 插件。使用插件,您可以在页面上运行 JavaScript,即使它不是您的页面。抱歉,我没有提供更多帮助,我希望这有助于您走上正确的道路。
如果您对插件感兴趣,可以从这里开始:http://anthonystechblog.wordpress.com/category/internet/firefox/
【讨论】:
【讨论】:
除了 watir-webdriver 和 capybara-webkit,celerity 是一个不错的选择,虽然它只是 jruby。
【讨论】:
我认为 Nokogiri、Watir 和 PhantomJs 是一个不错的选择:
b = Watir::Browser.new(:phantomjs)
b.goto URL
doc = Nokogiri::HTML(b.html)
生成的文档将来自脚本加载后的时间。而且phantomjs很好,因为不需要加载浏览器。
【讨论】: