Mit python-requests-Bibliothek-login auf website

Habe ich mich durch SO viele threads auf, wie zum erstellen einer Sitzung mit dem Anfragen Bibliothek, aber keine der Methoden, die ich versuchte eigentlich logge mich ein. Ich habe sehr wenig Erfahrung mit web-design und-Protokolle, also bitte jegliche Grundlagen, die ich brauchen könnte, zu verstehen. Hier ist, was ich Tue:

import requests

EMAIL = 'my_email'
PASSWORD = 'my_pw'
URL = 'https://account.guildwars2.com/login'

session = requests.session()

login_data = dict(username=EMAIL, password=PASSWORD)
r = session.post(URL, data=login_data)

req = session.get('https://leaderboards.guildwars2.com/en/na/achievements/guild/Darkhaven%20Elite')

print req.content

Den Inhalt, den ich sehe, ist der Inhalt, den ich sehen würde, wenn ich nicht angemeldet.

Gibt es etwas falsch über meine syntax, oder ist das problem durch die Art und Weise der login-Seite, ich bin Zugriff auf ist?

Es hängt davon ab, wie die Website erwartet, dass die session-Informationen gesendet werden, um. Session-Objekte werden automatisch zu übernehmen Sitzungen weitergegeben über cookies, aber nicht die Sitzungen, die erfordern, dass eine ID mit übergeben werden, in anderer Hinsicht, z.B. als query-string an die URL—was Häufig in älteren browser-games. Für diejenigen, die in anderen Fällen müssen Sie es manuell tun.
Sowieso, das erste, was zu tun ist, um an die URLs in der Adressleiste, wenn Sie sich in das Spiel in Ihrem browser. Wenn es offensichtlich nichts gibt, verwenden Sie eine browser-Erweiterung, die protokollieren oder aufzeichnen der gesendeten Header für jede Anfrage, um zu sehen, was dort passiert. Sobald Sie wissen, was Sie fehlen, sollte es ein leichtes sein, den code zu schreiben, füllt es in (oder, wenn es für Euch nicht einfach zu schreiben, es sollte zumindest leicht sein, für andere zu schreiben, nachdem Sie es hier posten).
Auch nicht, Guild Wars 2 haben eine API, die Sie verwenden können, statt zu versuchen, kratzen Sie die Benutzer-zugewandten-browser-Schnittstelle?
Sie tun, aber es scheint sehr begrenzt, gerade jetzt. Es liefert nicht die benötigte Funktionalität. wiki.guildwars2.com/wiki/API
Ja, es gibt keinen anderen Weg, um den Zugriff auf die Informationen, die ich Suche. Die "Rangliste" für eine bestimmte Gilde ist nur verfügbar, wenn Sie angemeldet sind und ein Mitglied dieser Gilde. Die Reproduktion dieser greift auf die in einem browser funktioniert einwandfrei. Die URLs ändern sich nicht, wenn Sie eingetragen sind, und nach der Anmeldung in der browser leitet mich zu einem generischen account.guildwars2.com/account/download URL

InformationsquelleAutor sebo | 2013-06-07

Schreibe einen Kommentar