Heim > Backend-Entwicklung > Python-Tutorial > Python-Tutorial zur Verwendung des Cookielib-Moduls zum Bearbeiten von Cookies

Python-Tutorial zur Verwendung des Cookielib-Moduls zum Bearbeiten von Cookies

WBOY
Freigeben: 2016-08-04 08:55:48
Original
1172 Leute haben es durchsucht

Cookielib ist ein Modul, das Cookies automatisch verarbeitet, wenn wir Technologien wie Crawler verwenden, hilft Ihnen cookielib dabei, mit halbem Aufwand das Doppelte zu erzielen! Seine häufigsten Partnermodule sind urllib und request unter Python.

Kernklasse
1.Cookie
Diese Klasse implementiert den von Netscape und RFC 2965-Cookies definierten Cookie-Standard und kann grundsätzlich als bestimmte Cookie-Daten verstanden werden.
Ein Teil des Codes lautet wie folgt. Kommen Ihnen viele Attribute bekannt vor?

    self.domain_initial_dot = domain_initial_dot
    self.path = path
    self.path_specified = path_specified
    self.secure = secure
    self.expires = expires
    self.discard = discard
    self.comment = comment
    self.comment_url = comment_url
    self.rfc2109 = rfc2109
Nach dem Login kopieren

2.Cookie-Richtlinie
Die Hauptfunktion dieser Klasse besteht darin, Cookies zu senden und zu empfangen, d. h. sicherzustellen, dass das richtige Cookie an den entsprechenden Domänennamen gesendet wird und umgekehrt.
3.DefaultCookiePolicy
Diese Klasse implementiert die CookiePolicy-Schnittstelle.
4.CookieJar
CookieJar ist eine Sammlung von Cookies, die viele Cookie-Klassen enthalten kann und unser Hauptoperationsobjekt ist. Es gibt eine Reihe von Methoden zur Unterstützung detaillierterer Vorgänge!
5.FileCookieJar
Diese Klasse erbt von CookieJar. Die Unterklasse von FileCookieJar kann Datenpersistenz erreichen und drei Schnittstellen definieren: Speichern, Laden und Zurücksetzen.
6.MozillaCookieJar & LWPCookieJar
Zwei Implementierungsklassen, die Vererbungsbeziehung ist wie folgt:

2016712155141137.png (702×330)

Beispiel: Bei Renren anmelden
Verwenden Sie das httpFox-Plug-in unter Firefox, um die POST-Adresse herauszufinden, die beim Anmelden bei Renren.com erforderlich ist: http://www.renren.com/ajaxLogin

2016712155529959.png (621×69)

Und ich habe gesehen, dass die DATEN, die gepostet werden müssen, E-Mail und Passwort enthalten
Python verarbeitet Cookies über cookielib. Das Folgende ist ein einfacher Code

>>> import urllib
>>> import urllib2,cookielib
>>> login_page = "http://www.renren.com/ajaxLogin"
>>> cj = cookielib.CookieJar()
>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
>>> opener.add_handler = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
>>> data = urllib.urlencode({"email":'username',"password":'password'}) 
>>> opener.open(login_page,data)
<addinfourl at 53653216 whose fp = <socket._fileobject object at 0x03307B70>>
>>> if cj:
... for index,cookie in enumerate(cj):
...  print index,':',cookie
...  
0 : <Cookie _de=90D533AE20EB964CA96710977F452897 for .renren.com/>
1 : <Cookie anonymid=hlehtdzg-8359yw for .renren.com/>
2 : <Cookie first_login_flag=1 for .renren.com/>
3 : <Cookie id=224967207 for .renren.com/>
4 : <Cookie loginfrom=null for .renren.com/>
5 : <Cookie p=9beb60859c004bcaf0a32ff2c973473d7 for .renren.com/>
6 : <Cookie societyguester=86b6a6006002ab6316f708521ab50bfc7 for .renren.com/>
7 : <Cookie t=86b6a6006002ab6316f708521ab50bfc7 for .renren.com/>
8 : <Cookie xnsid=fa53da51 for .renren.com/>
9 : <Cookie t=30af9ffe774f4d6f242e92da1ccd6670 for .renren.com/xtalk/>
10 : <Cookie feedType=224967207_hot for .www.renren.com/>
11 : <Cookie JSESSIONID=abc3IP9kEhTExblxcRfeu for www.renren.com/>
>>>
Nach dem Login kopieren

Sie können es mit dem in Firebug oder httpFox erhaltenen Cookie vergleichen. Der Wert ist im Grunde derselbe. Er sollte bei jeder Anmeldung inkonsistent sein

2016712155304292.jpg (596×374)

Ich habe auch versucht, mit Fidder das Senden von POST-Daten ohne Cookies zu simulieren, aber ich habe nicht den gewünschten Rückgabewert erhalten


2016712155344220.jpg (782×338)

Nachdem Sie die Cookie-Informationen hinzugefügt haben, können Sie ganz normal zu Ihrer Homepage springen


2016712155406504.jpg (924×226)

2016712155618471.jpg (930×355)

Okay, wir verstehen grundsätzlich die Verwendung von Cookies in Python zum Senden von Anmeldeinformationen. Jetzt schreiben wir ein kleines Skript, um uns bei Renren.com anzumelden.


#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
  login_page = "http://www.renren.com/ajaxLogin"
  try:    
    cj = cookielib.CookieJar()    
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
    data = urllib.urlencode({"email":user,"password":password})
    opener.open(login_page,data)
    op=opener.open(url)
    data= op.read()
    return data
  except Exception,e:
    print str(e)
print renrenBrower("http://www.renren.com/home","用户名","密码")
Nach dem Login kopieren
Auf diese Weise können Sie die Informationen auf Ihrer Homepage anzeigen. Tatsächlich können Sie nach dem Anmelden weiterhin Skripte schreiben, um die gewünschten Informationen zu erhalten, z. B. die neuesten Nachrichten von Freunden usw. Ich werde es nicht erklären zu viel hier~

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage