2012-05-15 15 views

Respuesta

4

Nokogiri y Mechanize no son navegadores web completas y hacen no ejecutar JavaScript en un DOM modelo de navegador. Desea utilizar algo como Watir o Selenium que le permiten usar Ruby para controlar un navegador web real.

+1

Si desea que se automatice un navegador con JavaScript real pero sin una ventana visible, intente con un navegador sin cabeza como (capybara-webkit) [https://github.com/thoughtbot/capybara-webkit] o (PhantomJS) [http: //phantomjs.org/] (hay otros también). – echristopherson

+1

@echristopherson Gracias; esos son [capybara-webkit] (https://github.com/thoughtbot/capybara-webkit) y [PhantomJS] (http://phantomjs.org/) respectivamente (enlaces de marcado fijo). – Phrogz

0

No sé nada sobre mechanize o nokogiri, así que no puedo comentar específicamente sobre ellos. Sin embargo, la cuestión de obtener JavaScript después de su modificación es una que creo que solo se puede resolver con más JavaScript. Para obtener el HTML generado recientemente, necesitaría obtener el .innerHTML del elemento del documento. Esto puede ser complicado ya que tendría que inyectar js en una página.

La única manera que conozco para lograr esto es escribir un complemento FireFox. Con un complemento puede ejecutar JavaScript en una página aunque no sea su página. Lo siento, no soy más ayuda, espero que esto ayude a ponerlo en el camino correcto.

Si usted está interesado en los complementos esta es un lugar para empezar: http: //anthonystechblog.wordpress.com/category/internet/firefox/

+0

En lugar de rodar su propio complemento desde cero, Greasemonkey probablemente podría hacerlo. – FatalError

2

Además de watir-webdriver y capybara-webkit, celerity es una buena opción, aunque solo es jruby.

6

Creo que una buena opción es algo como esto con Nokogiri, Watir y PhantomJS:

b = Watir::Browser.new(:phantomjs)

b.goto URL

doc = Nokogiri::HTML(b.html)

El documento resultante será de cuando después de los guiones han sido cargados Y phantomjs es bueno porque no hay necesidad de cargar un navegador.

Cuestiones relacionadas