2013-04-03 16 views
25

Ich versuche, einige Verkaufsdaten mit der StubHub API zu kratzen.Verwenden von Python-Anfragen: Sitzungen, Cookies und POST

https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata

Sie werden bemerken, dass, wenn Sie diese URL versuchen und besuchen, ohne in stubhub.com anmelden, es wird nicht funktionieren: Ein Beispiel für diese Daten hier zu sehen. You will need to login first.

Einmal habe ich über meine Web-Browser angemeldet, öffne ich die URL, die ich in einem neuen Tab kratzen wollen, dann den folgenden Befehl verwenden, um die geschabt Daten abzurufen:

r = requests.get('https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata') 

jedoch einmal die Browser-Sitzung läuft nach 10 Minuten, bekomme ich diesen Fehler:

<FormErrors> 
<FormField>User Auth Check</FormField> 
<ErrorMessage> 
Either is not active or the session might have expired. Please login again. 
</ErrorMessage> 

ich denke, dass ich die Session-ID über Cookie implementieren muß meine Authentifizierung am leben und gesund zu halten.

Die Dokumentation der Requests-Bibliothek ist ziemlich schrecklich für jemanden, der so etwas noch nie gemacht hat, also habe ich gehofft, ihr könnt vielleicht helfen.

Das Beispiel von Requests vorgesehen ist:

s = requests.Session() 

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') 
r = s.get("http://httpbin.org/cookies") 

print r.text 
# '{"cookies": {"sessioncookie": "123456789"}}' 

Ich kann ehrlich nicht Kopf oder Zahl davon machen. Wie erhalte ich Cookies zwischen POST-Anfragen?

+0

Wenn Sie einige rechtliche Verpflichtung haben, um den Inhalt zu entfernen, bitte Flagge für die Moderation Aufmerksamkeit und erklären die Situation klar und Wir werden geeignete Maßnahmen ergreifen. Bitte editiere nicht einfach den Körper deiner Frage. – animuson

Antwort

35

Ich weiß nicht, wie StubHub der api funktioniert, aber im Allgemeinen sollte es so aussehen:

s = requests.Session() 
data = {"login":"my_login", "password":"my_password"} 
url = "http://example.net/login" 
r = s.post(url, data=data) 

Jetzt ist Ihre Sitzung enthält Cookies durch Login-Formular zur Verfügung gestellt. Für den Zugriff auf Cookies von dieser Sitzung verwenden Sie einfach

s.cookies 

Weitergehende Maßnahmen wie weitere Anfragen werden dieses Cookie haben

+0

Können Sie mir helfen? Ich habe versucht, eine Website auf diese Weise einzuloggen, aber es funktioniert nicht. –

+0

@ MD.KhairulBasar Vielleicht können Sie eine andere Frage stellen, indem Sie die Details angeben und im Kommentar verlinken? –

+0

Obwohl ich bereits die Antwort bekommen habe, verbinde ich meine [Frage] (https://stackoverflow.com/questions/44548471/python-requests-cant-login-to-a-website) hier, da es anderen helfen könnte. –