2016-06-22 12 views
0

Ich fragte mich, ob es einen Weg oder eine Bibliothek gab, die ein Textfeld auf einer Website ausfüllen konnte, die Ruby verbindet. Ich bin auf einer Web-Scraping-Anwendung arbeiten, die eine Tabelle von einer Website zieht ... Dies ist die Textbox ich mich beziehe:Füllen Sie ein Textfeld auf einer Website mit Ruby

The text box

Gibt es eine einfache Möglichkeit, diese oder eine Bibliothek, die mich zu tun könnte benutzen?

(Alle verschiedenen Seiten von Daten sind in einer URL, so kann ich nicht eine andere URL verwenden, um dies zu tun).

Vielen Dank im Voraus!

+1

Ihre Frage fordert uns auf, Lösungen zu empfehlen, die nicht zum Thema gehören. "Fragen, die uns auffordern, ein Buch, ein Tool, eine Softwarebibliothek, ein Tutorial oder eine andere Offsite-Ressource zu empfehlen oder zu finden, sind für Stack Overflow off-topic, da sie eher zu eigensinnigen Antworten und Spam neigen. //meta.stockoverflow.com/questions/254393) und was bisher getan wurde, um es zu lösen. " –

Antwort

2

Sie sollten wahrscheinlich mechanize Juwel versuchen, die Sie dies tun können:

require 'mechanize' 

agent = Mechanize.new 
page = agent.get('http://google.com/') 

form = page.forms.first 
form['field_name_1'] = input1 
form['field_name_2'] = input2 

page = agent.submit(form, form.buttons.first) 
puts page 

Es ist ganz einfach zu bedienen und sehr intuitiv. Hier ist die documentation mit moreexamples.

Oder Sie können Developer-Tools Ihrer Wahl in Ihrem bevorzugten Browser verwenden, um die HTTP-Anfrage nach der Formularübermittlung aufzuzeichnen und zu überprüfen und dann den Standard HTTP Client zu verwenden, um eine direkte Anfrage an die Site (Formularaktion) mit der gesamten POST-Anfrage zu senden Daten vorbereitet (anstatt eine Form zu fühlen).

Wenn Sie eine Menge Daten verschrotten, würde ich vorschlagen, etwas wie em-http-request zu verwenden, um es asynchron zu tun.

-1

Sie müssen einen Test-Edelstein verwenden, einige, um Formulareingaben zu füllen. Wie "capybara"

Die Dokumentation ist ein wenig erschöpfend, aber es ist ein leistungsfähiges Werkzeug