Frage

Ich versuche mich einzuloggen http://www.steampowered.com Website mithilfe der Cookies, die ich aus meiner Chrome-Sitzung erhalten habe.

Sobald ich alles gepackt habe cookie Die Daten der Tabelle mithilfe des Befehls SELECT * FROM cookie WHERE host_key LIKE '%steam%' und die Spaltennamen: PRAGMA table_info(cookie) und alle Daten mit Listenverständnis sortiert, ich weiß nicht, wie ich das alles weitergeben soll requests damit die Cookies nutzbar werden.

Der request'S Dokumente Angenommen, Sie müssen ein Diktat übergeben, d. h cookies={'cookies':'are_working'} aber dann einige der Schlüssel names überschreiben sich gegenseitig, da einige davon names sind: Steam_Language, obwohl es sich um unterschiedliche Gastgeber handelt.

bearbeiten:Gerade gefunden Wie füge ich ein Cookie zu einer vorhandenen Cookielib-CookieJar-Instanz in Python hinzu? Das könnte mir helfen, aber ich weiß nicht, wie ich die Chrome-Cookies für cookielib formatieren soll

Meine Frage ist: Wie übergebe ich Cookies im Wert mehrerer verschiedener Websites? requests?

War es hilfreich?

Lösung

ich erschuf ein Modul zum Laden von Cookies aus Firefox.

Beispielverwendung mit Anfragen:

import requests
import browser_cookie
cj = browser_cookie.firefox()
r = requests.get(url, cookies=cj)

Andere Tipps

Denken Sie daran, dass Sie versuchen, etwas zu tun, was die HTTP-Spezifikation absichtlich zu verhindern versucht (z. B.Senden von Cookies an Domains, von denen sie nicht stammen).Sie könnten also von Anfang an zum Scheitern verurteilt sein.Und um die Sache für Sie noch schlimmer zu machen, habe ich einen flüchtigen Blick auf die Art und Weise geworfen, wie sich dampfbetriebene Geräte anmelden, und Sie haben eine Menge Arbeit vor sich.

Zurück zu deiner Frage...

Vorausgesetzt, dass Ihre Steam-Sitzungscookies gültig sind (was möglicherweise nicht auf den Verschlüsselungs-, Schlüsselfreigabe- und Captcha-Methoden der Anmeldeseite basiert), können Sie sich möglicherweise mit der Anforderungsbibliothek anmelden, indem Sie einfach ein gültiges Cookie-Dikt als angeben Dokumentationsstatus.

my_cookies = {'cookiename1': 'cookievalue1', 'cookiename2': 'cookievalue2'}
response = requests.get(
    'http://www.steampowered.com/mystuff',
    cookies=my_cookies)

Außerdem weiß ich nicht, welche Daten in den Datenbanken gespeichert sind, von denen Sie die Cookies erhalten, aber bedenken Sie, dass sie möglicherweise alle Metadaten speichern, die mit einem „Set-Cookie“-Header einhergehen (Ablauf, Pfad, Domäne usw.).Das sind Informationen, die der Benutzeragent (Chrome, IE, die Anforderungsbibliothek usw.) verwendet, um zu bestimmen, welche Cookies in einer Anfrage gesendet werden sollen, aber sie sind nicht in der Anfrage enthalten.Ein „Cookie“-Header enthält nur Name=Wert-Paare.Das ist also alles, was Sie in Ihrem Cookie-Dikt angeben müssen.

Und wenn Sie zwei Cookies mit demselben Namen haben, wählen Sie einfach eines aus.Denn am Ende wird höchstwahrscheinlich nur einer ausgewertet, sonst gibt der Server einfach einen Fehler zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top