HTTP effizienter scripten

8

Oft möchte ich HTTP-Abfragen automatisieren. Ich verwende derzeit Java (und commons http client), würde aber wahrscheinlich einen scriptingbasierten Ansatz bevorzugen. Etwas wirklich schnell und einfach. Wo ich einen Header einstellen kann, gehe auf eine Seite und sorge mich nicht darum, den gesamten OO-Lebenszyklus einzurichten, jeden Header zu setzen, einen HTML-Parser aufzurufen ... Ich suche nach einer Lösung in JEDER Sprache, vorzugsweise Scripting

    
Zombies 11.01.2010, 16:15
quelle

12 Antworten

6

Sieh dir Selenium an. Es generiert Code für C #, Java, Perl, PHP, Python und Ruby, wenn Sie das Skript anpassen müssen.

    
jbochi 11.01.2010, 16:18
quelle
6

Watir klingt nahe an dem, was Sie wollen, obwohl es (wie Selenium in einer anderen Antwort verlinkt) tatsächlich einen Browser öffnet, um Dinge zu tun. Sie können hier einige Beispiele sehen. Ein anderes browserbasiertes Record + Playback Approach System ist sahi .

Wenn Ihre Anwendung WSGI verwendet, dann einfügen ist eine nette Option.

Mechanize, mit dem in einer anderen Antwort verlinkt wird, ist ein "Browser in einer Bibliothek" und es gibt Klone in perl , Ruby und Python . Die Perl-Version ist die Original-Version und dies scheint der richtige Weg zu sein, wenn Sie einen Browser nicht wollen. Das Problem bei diesem Ansatz besteht darin, dass der gesamte Front-End-Code (der auf JavaScript basiert) nicht ausgeführt wird.

    
Noufal Ibrahim 11.01.2010 16:28
quelle
6

Mechanize for Python scheint einfach zu verwenden: Ссылка

    
emil 11.01.2010 16:18
quelle
6

Ich bin dran: wget oder perl mit lwp . Sie finden ein Beispiel auf der verlinkten Seite.

    
Aif 11.01.2010 16:37
quelle
6

Wenn Sie einfache Bedürfnisse haben (eine Seite holen und dann parsen), ist es schwer LWP :: Simple zu schlagen und HTML :: TreeBuilder .

%Vor%     
daotoad 11.01.2010 17:24
quelle
4

Ich teste gerade ReST-APIs und fand den ReST-Client sehr nett. Es ist ein GUI-Programm, aber nichtsdestoweniger können Sie Abfragen als XML-Dateien speichern und wiederherstellen (oder lassen Sie sie generieren), einbetten, schreiben Sie Testskripts und so weiter. Und es ist Java-basiert (was kein Ad-hoc-Vorteil ist, aber Sie haben es erwähnt).

Minuspunkte für Aufnahmesitzungen. Der ReST Client ist gut für staatenlose "One-Shots".

Wenn es Ihren Anforderungen nicht entspricht, wähle ich das bereits erwähnte Mechanize (oder WWW-Mechanize <) / a>, wie es bei CPAN genannt wird).

    
Boldewyn 11.01.2010 16:49
quelle
3

Je nachdem, was Sie gerade tun, scheint die einfachste Lösung bash + curl zu sein.

Die man-Seite für Letzteres ist hier verfügbar:

Ссылка

Sie können sowohl Posts als auch gets, HTTPS, show headers, arbeiten mit Cookies, Basic und Digest HTTP authentication, tunneln Sie durch alle Arten von Proxies, einschließlich NTLM on * nix unter anderem.

curl ist auch als Shared Library mit C- und PHP-Unterstützung verfügbar.

HTH

C.

    
symcbean 11.01.2010 16:37
quelle
2

Python urllib könnte das sein, wonach Sie suchen.

Alternativ stellt powershell die vollständige .NET http-Bibliothek in einer Skriptumgebung zur Verfügung.

    
John Weldon 11.01.2010 16:16
quelle
2

Twill ist ziemlich gut und zum Testen gemacht. Es kann als Skript, in einer interaktiven Sitzung oder in einem Python-Programm verwendet werden.

    
ars 11.01.2010 17:03
quelle
2

Perl und WWW :: Mechanize können Web-Scraping usw. einfach und leicht machen, einschließlich der einfachen Handhabung von Formularen ( Nehmen wir an, Sie möchten auf eine Anmeldeseite gehen, einen Benutzernamen und ein Passwort eingeben und das Formular absenden, Cookies / versteckte Sitzungsbezeichner so behandeln, wie es ein Browser tun würde ...)

Ebenso ist das Finden oder Extrahieren von Links von der abgerufenen Seite trivial.

Wenn Sie Dinge aus den resultierenden Seiten analysieren müssen, mit denen WWW :: Mechanize nicht leicht helfen kann, dann füttern Sie das Ergebnis an HTML :: TreeBuilder um das Parsen zu vereinfachen.

    
David Precious 11.01.2010 21:21
quelle
0

Was ist mit der Verwendung von PHP + Curl oder einfach Bash?

    
mr-sk 11.01.2010 16:16
quelle
0

Einige Ruby Bibliotheken:

  • Ссылка wirklich interessant, die Philosophie ist interessant.
  • mechanize: klassische Webautomatisierungsbibliothek von guter Qualität.
  • scruwYt: rätselhaft auf den ersten Blick, aber Spaß zu benutzen.
paradigmatic 11.01.2010 16:32
quelle

Tags und Links