In diesem Artikel werden hauptsächlich relevante Informationen zu Details und Beispielen für die Python-Anmeldewebsite vorgestellt. Freunde, die diese benötigen, können auf
Details und Beispiele für die Python-Anmeldewebsite
Für In In den meisten Foren müssen wir uns zuerst anmelden, wenn wir die Beiträge erfassen und analysieren möchten, sonst können wir sie nicht sehen.
Dies liegt daran, dass das HTTP-Protokoll ein zustandsloses Protokoll ist. Woher weiß der Server, ob der Benutzer, der gerade die Verbindung anfordert, angemeldet ist? Es gibt zwei Möglichkeiten:
Verwenden Sie explizit die Sitzungs-ID in der URI.
Verwenden Sie Cookies. Der ungefähre Vorgang besteht darin, sich bei a anzumelden Speichern Sie ein Cookie lokal, und wenn Sie diese Website weiter durchsuchen, sendet der Browser das Cookie zusammen mit der Adressanfrage.
Python bietet eine ganze Reihe von Modulen, sodass diese Art von Netzwerkbetrieb in nur wenigen Sätzen erledigt werden kann. Ich nehme die Anmeldung im QZZN-Forum als Beispiel. Tatsächlich ist das folgende Programm auf fast alle Foren vom Typ PHPWind anwendbar.
# -*- coding: GB2312 -*- from urllib import urlencode import cookielib, urllib2 # cookie cj = cookielib.LWPCookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) urllib2.install_opener(opener) # Login user_data = {'pwuser': '你的用户名', 'pwpwd': '你的密码', 'step':'2' } url_data = urlencode(user_data) login_r = opener.open("http://bbs.qzzn.com/login.php", url_data)
Einige Anmerkungen:
urllib2 ist offensichtlich ein fortgeschritteneres Modul als urllib und enthält Informationen zur Verwendung von Cookies.
In urllib2 kann jeder Client mit einem Öffner abstrahiert werden, und jeder Öffner kann mehrere Handler hinzufügen, um seine Funktionalität zu verbessern.
HTTPCookieProcessor wird beim Erstellen des Openers als Handler angegeben, daher unterstützt dieser Handler Cookie.
Nach der Verwendung von isntall_opener wird dieser Öffner beim Aufruf von urlopen verwendet.
Wenn Sie keine Cookies speichern müssen, kann der cj-Parameter weggelassen werden.
user_data speichert die für die Anmeldung erforderlichen Informationen. Geben Sie diese Informationen einfach beim Anmelden im Forum an.
Die Funktion von urlencode besteht darin, die Benutzerdaten des Wörterbuchs in die Form „?pwuser=Benutzername&pwpwd=Passwort“ zu kodieren. Dies geschieht, um das Programm leichter lesbar zu machen.
Die letzte Frage ist, woher Namen wie pwuser und pwpwd kommen. Dies erfordert eine Analyse der Webseite, die eine Anmeldung erfordert. Wir wissen, dass die allgemeine Anmeldeschnittstelle ein Formular ist. Der Auszug lautet wie folgt:
<form action="login.php?" method="post" name="login" onSubmit="this.submit.disabled = true;"> <input type="hidden" value="" name="forward" /> <input type="hidden" value="http://bbs.qzzn.com/index.php" name="jumpurl" /> <input type="hidden" value="2" name="step" /> ... <td width="20%" onclick="document.login.pwuser.focus();"><input type="radio" name="lgt" value="0" checked />用户名 <input type="radio" name="lgt" value="1" />UID</td> <td><input class="input" type="text" maxLength="20" name="pwuser" size="40" tabindex="1" /> <a href="reg1ster.php" rel="external nofollow" >马上注册</a></td> <td>密 码</td> <td><input class="input" type="password" maxLength="20" name="pwpwd" size="40" tabindex="2" /> <a href="sendpwd.php" rel="external nofollow" target="_blank">找回密码</a></td> ... </form>
Von hier aus können wir sehen, dass der Benutzername und das Passwort, die wir eingeben müssen, pwuser und pwpwd entsprechen und Schritt entspricht Einloggen (das habe ich versucht).
Beachten Sie, dass dieses Forum-Formular die Post-Methode verwendet. Die Methode in diesem Artikel muss nicht direkt geöffnet werden, sondern sollte zuerst angefordert und dann geöffnet werden. Weitere Informationen finden Sie im Handbuch...
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Anmeldung bei der Website mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!