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
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.
Wenn Sie einfache Bedürfnisse haben (eine Seite holen und dann parsen), ist es schwer LWP :: Simple zu schlagen und HTML :: TreeBuilder .
%Vor%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).
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.
Python urllib könnte das sein, wonach Sie suchen.
Alternativ stellt powershell die vollständige .NET http-Bibliothek in einer Skriptumgebung zur Verfügung.
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.
Einige Ruby Bibliotheken: