Ok, ich muss einige Webseiten mit Python herunterladen und habe meine Optionen schnell untersucht.
In Python enthalten:
urllib - scheint mir, dass ich stattdessen urllib2 verwenden sollte. urllib hat keine Cookie-Unterstützung, nur HTTP / FTP / lokale Dateien (kein SSL)
urllib2 - vollständiger HTTP / FTP-Client, unterstützt die am meisten benötigten Dinge wie Cookies, unterstützt nicht alle HTTP-Verben (nur GET und POST, kein TRACE usw.)
Voll ausgestattet:
mechanisieren - kann Firefox / IE-Cookies verwenden / speichern, Aktionen wie den zweiten Link folgen, aktiv gepflegt (0.2.5 veröffentlicht im März 2011)
PycURL - unterstützt alles, was Curl macht (FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, DATEI und LDAP), schlechte Nachrichten: seit dem 9. September 2008 nicht aktualisiert (7.19.0)
Neue Möglichkeiten:
urllib3 - unterstützt die Wiederverwendung / das Pooling von Verbindungen und das Posten von Dateien
Veraltet (auch bekannt als urllib / urllib2):
httplib - Nur HTTP / HTTPS (kein FTP)
httplib2 - Nur HTTP / HTTPS (kein FTP)
Das erste, was mir auffällt, ist, dass urllib / urllib2 / PycURL / mechanize allesamt ziemlich ausgereifte Lösungen sind, die gut funktionieren. mechanize und PycURL werden mit einer Reihe von Linux-Distributionen (z. B. Fedora 13) und BSDs ausgeliefert, sodass die Installation normalerweise kein Problem darstellt (das ist also gut).
urllib2 sieht gut aus, aber ich frage mich, warum PycURL und mechanize beide sehr beliebt zu sein scheinen. Fehlt mir etwas (dh wenn ich urllib2 verwende, male ich mich irgendwann in eine Ecke?). Ich hätte gerne ein Feedback zu den Vor- und Nachteilen dieser Dinge, damit ich die beste Wahl für mich treffen kann.
Bearbeiten: Hinweis zur Verbunterstützung in urllib2 hinzugefügt