Python automatisiert ein Wget-Skript mit Login erforderlich

Ich muss einen Download-Prozess von einer Website automatisieren, die folgendes erfordert:

  • Senden Sie eine HTTP-POST-Anfrage mit Ihrem Benutzernamen und Passwort
  • Ich bekomme ein Cookie (vermutlich mit einer Session ID)
  • Senden Sie eine HTTP GET-Anfrage für die Datei und senden Sie meine Cookie-Details in die HTTP-Header

Mit wget jetzt muss ich mich erst mit einem Passwort anmelden (eine Sitzung öffnen)?

wget --no-check-certificate -O /dev/null --save-cookies auth.rda_ucar_edu --post-data=email=name@domain.edu&passwd=5555&action=login https://rda.ucar.edu/cgi-bin/login 

Dann rufe ich die Dateien ab, die ich brauche:

 wget --no-check-certificate -N --load-cookies auth.rda_ucar_edu http://rda.ucar.edu/data/ds608.0/3HRLY/1979/NARRflx_197901_0916.tar 

Gibt es einen schönen Weg, dies in Python zu tun? Ich habe viele Wege ausprobiert und habe das nicht zur Arbeit gebracht. Der folgende Python-Code scheint mich richtig zu melden. Allerdings glaube ich, dass ich die Session live halten muss, während ich meine Daten herunterlade?

 url = 'https://rda.ucar.edu/cgi-bin/login' values = {'email': 'name@domain.edu', 'password': '5555', 'action': 'login'} data = urllib.urlencode(values) binary_data = data.encode('ascii') req = urllib2.Request(url, binary_data) response = urllib2.urlopen(req) print response.read() 

Hab das auch versucht:

 from requests import session with session() as c: c.post(url, values) request = c.get('http://rda.ucar.edu/data/ds608.0/3HRLY/1979/NARRflx_197901_0108.tar') 

Irgendwelche Vorschläge sind hilfreich.

One Solution collect form web for “Python automatisiert ein Wget-Skript mit Login erforderlich”

Sie müssen Ihre Cookies speichern .

Einfacher, einfach nur eine Drittanbieter-lib wie mechanisieren oder kratzig aber verwenden

  • Versuche, Multipart-Formulardaten in Python zu posten, wird nicht posten
  • Wie schreibe ich eine Django-Ansicht für eine POST-Anfrage
  • Senden von POST-Parametern mit Python mit Mechanize
  • Setzen Sie das Benutzerfeld in ein Formularobjekt, das mit ModelForm erstellt wurde
  • Python: Senden und Empfangen großer Dateien über POST mit cherrypy
  • Wie bekomme ich Github Webhooks in Python
  • HTTP POST und GET mit Cookies zur Authentifizierung in Python
  • Parsing von Python-HTML-POST-Daten aus BaseHTTPServer
  • Python URLLib / URLLib2 POST
  • Verwenden von Daten von Ajax in einem Python-Skript
  • Keine Ergebnisse von load2neo bulk load -curl POSTcomand
  • Python ist die beste Programmiersprache der Welt.