2016-04-11 3 views
0

Ich suche nach dem Inhalt einer Seite, die Sie brauchen, um eine Pfeiltaste zu drücken, in der Informationen über jquery angezeigt werden, anstatt eine neue Seite zu laden. Da es einen Knopfklick geben muss, verwende ich mechanize für diesen Teil anstelle von Nokogiri. Was ich bisher habe, istWie kann ich mechanize verwenden, um auf eine Webseite zu klicken, um Informationen zu erhalten?

url = "http://brokercheck.finra.org/Individual/Summary/1327992" 
mechanize = Mechanize.new 
page = mechanize.get(url) 
button = page.at('.ArrowExpandDsclsr.faangledown') 
new_page = mechanize.click(button) 
new_page.at('#disclosuredetails') 

Es scheint, dass new_page immer noch nicht die Seite mit den neu geladenen Informationen zeigt. Wer weiß, warum das ist?

+2

Mechanize verarbeitet kein Javascript. Sehen Sie sich die Antworten für http://stackoverflow.com/questions/802225/how-doi-i-use-mechanize-to-process-javascript an – eugen

Antwort

0

Der Knopf, den Sie zu mechanisieren versuchen klicken, ist kein "normaler" Knopf, es ist ein bisschen dynamischer. Es verwendet Javascript/Ajax, um die relevanten Daten abzurufen, wenn darauf geklickt wird.

Mechanize macht weder das DOM einer Webseite noch bietet es eine Möglichkeit, JavaScript mit der Seite interagieren zu lassen. Daher ist es nicht geeignet für die Interaktion mit dynamischen Seiten, abhängig von Javascript für ihre Funktionalität.

Für solche Fälle würde ich phantomjs, entweder eigenständig oder durch capybara/poltergeist vorschlagen, wenn Sie mit ihm über Rubin interagieren würden es vorziehen.