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