Pregunta

Estoy usando RoR tratando de buscar una forma sencilla en mi colegio usando mecanizar . El código funciona bien para la búsqueda de Google, pero devuelve el formulario de búsqueda en los resultados? Estoy realmente confundido. ¿Algún consejo? Gracias!

ruby script/console
require 'mechanize'
agent = WWW::Mechanize.new
agent.get("https://www.owens.edu/cgi-bin/class.pl/")
agent.page.forms
form = agent.page.forms.last
form.occ_subject = "chm"
form.submit
¿Fue útil?

Solución

He resuelto él! Cuando form.submit está siendo llamado, que está asumiendo el último botón en form.buttons es el botón para usar. El último botón en form.buttons es la forma avanzada, por lo tanto, el objeto de página que resulta ser otra forma, aunque la forma más exhaustiva búsqueda avanzada.

require 'mechanize'
agent = WWW::Mechanize.new
agent.get("https://www.owens.edu/cgi-bin/class.pl/")
agent.page.forms
form = agent.page.forms.last
form.occ_subject = "chm"
result = agent.submit(form, form.buttons.first)

result.parser.css('table.cs-table-settings tr.tbl-class-fill-b td font b').map { |v| v.text.strip }

=> ["Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", …]

Finalmente llegamos a la parte inferior de la misma! El HTML es horrible, por lo que tendrá que poner su sombrero en XPath para éste! :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top