Verwenden Sie Cookies in Python-Anforderungen
-
Verwenden Sie
requests.get()
, um Cookies in Python zu erhalten -
Verwenden Sie die Klasse
Session()
, um nach der Anmeldung mit den Seiten in Verbindung zu bleiben
Dieses Tutorial demonstriert die Verwendung von requests.get()
zum Abrufen von Cookies mit Hilfe des cookies
-Parameters in Python und wie man auf eine bestimmte Webseite zugreift, die eine Anmeldung erfordert.
Außerdem lernen wir die Verwendung von requests.Session()
, um mit dieser Seite in Verbindung zu bleiben.
Verwenden Sie requests.get()
, um Cookies in Python zu erhalten
Die Bibliothek requests
ermöglicht das Erstellen und Lesen von HTTP-Cookies vom Server. Gemäß der MDN-Dokumentation ist ein Cookie ein kleines Datenelement, das ein Server an den Webbrowser des Benutzers sendet
.
Wir können das Cookie im Browser speichern und an den Server zurücksenden. Cookies dienen typischerweise einem der folgenden Zwecke:
- Sitzungsverwaltung für die Anmeldung
- Einkaufswagen
- Benutzerpersonalisierung oder Verfolgung des Benutzerverhaltens
Dieser Abschnitt zeigt, wie Sie mit Cookies arbeiten, und im nächsten Abschnitt verwenden wir den ersten Zweck (Sitzungsverwaltung für die Anmeldung).
Um Cookies mit der Bibliothek Anfragen
zu senden und zu empfangen, beginnen wir mit dem Importieren von Anfragen
. Nach dem Import setzen wir eine Variable namens URL
, um den Link als string
zu übergeben.
Wir werden diese URL
verwenden, da sie einen einfachen Antworttext bietet, um die Cookie-Informationen anzuzeigen, die wir an den Server gesendet haben. Angenommen, wir möchten unsere Benutzererfahrung basierend auf dem Standort eines Benutzers anpassen.
Auf diese Weise können wir Versandschätzungen für unsere Produkte bereitstellen, ohne dass der Benutzer eine Adresse eingeben muss. Dazu fragen wir den Standort des Nutzers im Cookie ab und speichern die Information bei Zustimmung in einem Cookie.
Um den in diesem Ereignis empfangenen Inhalt nachzuahmen, deklarieren wir ein Wörterbuch namens CK
mit dem Schlüssel Standort
und einem Wert New York
.
Als nächstes deklarieren wir unser Response-Objekt response
und setzen es mit der requests.get()
-Methode. Als ersten Parameter geben wir unsere Variable URL
ein, gefolgt vom Schlüsselwort cookies
, das unserem CK
-Wörterbuch gleichgesetzt wird.
Nachdem die Anfrage nun eingerichtet ist, können wir den Text aus dem Response-Objekt mit response.text
drucken. Wenn ein Skript ausgeführt wird, können wir sehen, dass sich das gerade gesendete Cookie im Antworttext befindet.
import requests
URL = "https://httpbin.org/cookies"
CK = {"location": "New York"}
response = requests.get(URL, cookies=CK)
print(response.text)
Ausgang:
{
"cookies": {
"location": "New York"
}
}
Um ein Cookie von einem Server zu erhalten, verwenden wir ein bereits auf der Google-Website eingerichtetes Cookie.
Verwenden Sie die Klasse Session()
, um nach der Anmeldung mit den Seiten in Verbindung zu bleiben
Mit dem Inspect-Element-Tool in unserem Browser können wir sehen, wohin die Anmeldeanfrage gesendet wird, und dies in unserem Programm nachahmen. Und der Sitzungsteil ermöglicht es uns, am Leben zu bleiben und auf alle Seiten hinter dem Login zuzugreifen.
Bevor wir unseren Code schreiben, müssen wir ein paar Dinge tun; Wir müssen jedoch die Login-URL finden und sehen, welche Parameter mit dieser post
-Anforderung gesendet werden.
Wir benötigen die Anmeldeinformationen, daher werden wir die Anmeldeinformationen in diesem Beispiel mit Ihnen teilen, da wir eine Dummy-Site verwenden.
Wir haben ein einfaches Anmeldeformular mit einem erforderlichen Benutzernamen
und Passwort
; Wenn wir uns mit den angegebenen Informationen anmelden, werden wir angemeldet und erhalten einen sicheren Bereich.
Wir sehen die Anfrage und Antwort, indem wir das Inspect-Element verwenden und zur Registerkarte Netzwerk gehen. Wir können hier sehen, wenn wir auf die Schaltfläche Anmelden
klicken, erscheinen mehrere Anfragen.
Bevor Sie sich auf der Seite anmelden, sollten Sie das Preserve-Protokoll überprüfen, damit wir alles im Netzwerk-Tab sehen können. Nach dem Öffnen der Anfrage Authentifizieren
erhalten wir einige Informationen, und eine davon ist eine post
-Anfrage.
Eine post
-Anfrage ist eine Anfrage, die vom Webbrowser an den Server gesendet wird, und eine get
-Anfrage ist die Information, die zurückkommt, um die URL
herauszufinden, die gepostet wird.
Wir werden die post
-Anfrage URL
kopieren, weil wir unsere post
-Anfrage von unserem Python-Skript senden. Wir finden unsere Formulardaten innerhalb der payload
.
Manchmal finden Sie weitere Informationen innerhalb der payload
, daher müssen Sie sicherstellen, dass alle Parameter mit der post
-Anfrage übereinstimmen.
Aber in unserem Fall sehen wir, dass es nur einen Benutzernamen
und ein Passwort
gibt. Nach der Anmeldung wurden wir also zurück auf die sichere Seite geleitet, und dies ist unsere get
-Anfrage; Durch die Verwendung einer sicheren
Antwort kopieren wir die Anforderungs-URL
zur Verwendung in unserem Python-Skript.
Jetzt springen wir in den Code-Editor und beginnen mit dem Schreiben unseres Codes. Das erste, was wir tun müssen, ist wie immer, Anfragen
zu importieren, und wir müssen unsere Anmelde-URL
für die post
-Anfrage festlegen und sichern URL
für get
-Anfrage.
Jetzt müssen wir die Methode post()
aufrufen, um den Benutzernamen
und das Passwort
zu senden und uns beim Server zu authentifizieren. Dazu müssen wir mithilfe eines Wörterbuchs namens ACCESS_DATA
einige Payloads
senden.
Wir haben den Code in Login_Dummy_web()
verpackt und eine weitere Python-Datei namens data.py
erstellt.
Nach dem Import der data
-Datei haben wir beim Aufruf der Funktion auf username
und password
aus dieser Datei zugegriffen und den RESULT.text
der sicheren Seite zurückgegeben.
Versuchen wir, mit der Methode get()
zur sicheren Seite zurückzukehren; es schickt uns zurück zu einer Login-Seite, weil wir nicht authentifiziert sind.
import requests
import data
def Login_Dummy_web(username, password):
LOGIN_URL = "https://the-internet.herokuapp.com/authenticate"
SECURE_URL = "https://the-internet.herokuapp.com/secure"
ACCESS_DATA = {"username": username, "password": password}
RESULT = requests.post(LOGIN_URL, data=ACCESS_DATA)
RESULT2 = requests.get(SECURE_URL)
return RESULT2.text
print(Login_Dummy_web(data.username, data.password))
Ausgang:
Wir haben uns bereits mit der Methode post()
angemeldet, aber sie verweigert immer noch die Verwendung zum Senden der sicheren Seite, da wir unsere Sitzung nicht haben. Die Sitzung ermöglicht es uns, Cookies für eine bestimmte Website zu speichern; Um eine sichere Seite zu erhalten, müssen wir requests.Session()
verwenden.
Mit dem Schlüsselwort with
verwenden wir den Kontextmanager; Der Kontextmanager ist praktisch, weil er es uns ermöglicht, in Verbindung zu bleiben und eingeloggt zu bleiben, solange wir bleiben.
Jetzt müssen wir die Methoden get()
und post()
von der Session-Variablen namens ss
aufrufen, weil wir jetzt von der Klasse Session()
darauf zugreifen.
import requests
import data
def Login_Dummy_web(username, password):
LOGIN_URL = "https://the-internet.herokuapp.com/authenticate"
SECURE_URL = "https://the-internet.herokuapp.com/secure"
ACCESS_DATA = {"username": username, "password": password}
with requests.Session() as ss:
ss.post(LOGIN_URL, data=ACCESS_DATA)
RESULT = ss.get(SECURE_URL)
return RESULT.text
print(Login_Dummy_web(data.username, data.password))
Jetzt steht da (Willkommen im sicheren Bereich
), was beweist, dass wir uns dort eingeloggt haben; Mit der Variable requests.Session()
namens ss
können wir einen anderen URL
-Inhalt erhalten.
Der Code der Datei data.py
ist unten angegeben:
username = "tomsmith"
password = "SuperSecretPassword!"
Weitere Informationen finden Sie auf dieser Website.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedInVerwandter Artikel - Python Requests
- Abfragezeichenfolge mit Parametern für Anfragen in Python
- Führen Sie einen API-Aufruf mit Token in Python durch
- Ignorieren Sie die Prüfung des SSL-Sicherheitszertifikats in Python-Anforderungen
- Legen Sie den Benutzeragenten mithilfe von Anforderungen in Python fest
- Maximale Wiederholungsversuche für Anfragen in Python festlegen
- Python fordert Paginierung an