Ich versuche, urllib2 zu verwenden, um die URL zu öffnen und bestimmten Cookie-Text an den Server zu senden. ZB möchte ich die Site öffnen Löse Schachprobleme mit einem bestimmten Cookie, zB search = 1. Wie mache ich es?
Ich versuche Folgendes zu tun:
import urllib2
(need to add cookie to the request somehow)
urllib2.urlopen("http://chess-problems.prg")
Danke im Voraus
cookievals
, verwenden Sieopener.addheaders.append(('Cookie', "; ".join('%s=%s' % (k,v) for k,v in cookievals.items())))
.Vielleicht kann Ihnen die Verwendung von cookielib.CookieJar helfen. Zum Beispiel beim Posten auf einer Seite, die ein Formular enthält:
BEARBEITEN:
Nach Piotrs Kommentar werde ich etwas näher darauf eingehen. Aus den Dokumenten:
CookieJar
Unabhängig davon, welche Anforderungen Sie an Ihre Instanz stellen, werden alle Cookies automatisch verarbeitet. Ein bisschen wie dein Browser :)Ich kann nur aus eigener Erfahrung sprechen und mein 99% iger Anwendungsfall für Cookies besteht darin, ein Cookie zu erhalten und es dann mit allen nachfolgenden Anfragen in dieser Sitzung zu senden. Der obige Code behandelt genau das und dies transparent.
quelle
CookieJar
Instanz es von nun an für mich auf allen relevanten Domains erledigt .Vielleicht möchten Sie einen Blick auf die hervorragende HTTP-Python-Bibliothek namens Requests werfen . Es macht jede Aufgabe mit HTTP ein bisschen einfacher als urllib2. Aus dem Abschnitt " Cookies " der Kurzanleitung:
quelle
urllib3
, unterstützt das Pooling von Verbindungen wie urllib3 und behält Cookies und Header bei - sieheRequests Session
. Es ist wunderschön!Verwenden Sie Cookielib . Die verknüpfte Dokumentseite enthält am Ende Beispiele. Sie finden auch ein Tutorial finden hier .
quelle
Diese Antwort funktioniert nicht, da das
urllib2
Modul in Python 3 auf mehrere Module aufgeteilt wurde. Sie müssen dies tunquelle