In diesem Artikel werden hauptsächlich die relevanten Informationen zu zwei Implementierungsmethoden für die simulierte Anmeldung in Python vorgestellt. Eine davon ist in normaler Schrift geschrieben, die andere ist objektorientiert geschrieben Die simulierte Anmeldung ist erfolgreich. Freunde, die sie benötigen, können sich auf
Zwei Implementierungsmethoden der simulierten Python-Anmeldung beziehen
Manchmal müssen wir uns beim Crawlen von Projekten anmelden Nur um bestimmte Inhalte anzuzeigen, ist die simulierte Anmeldefunktion unverzichtbar. Der von Sanxian verfasste Artikel enthält hauptsächlich zwei Beispiele, eines ist in normaler Schreibweise verfasst und das andere basiert auf objektorientiertem Schreiben .
Der entscheidende Punkt bei der simulierten Anmeldung besteht darin, die tatsächliche Übermittlungsadresse des Formulars zu finden und dann das Cookie und die Postdaten zu übertragen. Solange die Anmeldung erfolgreich ist, können wir auf jede andere Webseite zugreifen, um die Webseite zu erhalten Inhalt.
Methode 1:
import urllib.request import urllib.parse import http.cookiejar #post的内容 values={ 'logon.x':'linke', 'password':'xxxx', 'username':'xxxxx' } #登陆的地址 logUrl="http://192.168.32.112:8080/templates/index/hrlogon.do" #构建cook cook=http.cookiejar.CookieJar() #构建openner openner=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cook)) #添加headers openner.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')] r=openner.open(logUrl,urllib.parse.urlencode(values).encode()) #print(r.read().decode('gbk')) r=openner.open("http://192.168.132.62:8080/kq/kqself/card/carddata.do?b_query=link") print(r.read().decode('gbk'))
Methode 2:
import urllib import urllib.request import urllib.parse import http.cookiejar import re class loginRLKQ: post_data=b""; def __init__(self): #初始化类,cook的值 cj=http.cookiejar.CookieJar() opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) opener.addheaders=[('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')] #初始化全局opener urllib.request.install_opener(opener) #login方法需要加入post数据 def login(self,loginurl,encode): #模拟登陆 req=urllib.request.Request(loginurl,self.post_data) rep=urllib.request.urlopen(req) d=rep.read() #print(d) d=d.decode(encode) return d #登陆之后获取其他网页方法 def getUrlContent(self,url,encode): req2=urllib.request.Request(url) rep2=urllib.request.urlopen(req2) d2=rep2.read() d22=d2.decode(encode) return d22 if __name__=="__main__": #实例化类 x=loginRLKQ() #给post数据赋值 x.post_data=urllib.parse.urlencode({'username':"xxdd",'password':'xxdd','logon.x':'linke'}).encode(encoding="gbk") #登陆 y=x.login("http://192.168.132.61:8080/templates/index/hrlogon.do","gbk") #获取网页信息 print(x.getUrlContent("http://192.124.32.16:8080/kq/kqself/card/carddata.do?b_query=link","gbk"))
Das obige ist der detaillierte Inhalt vonCodebeispiele für zwei Methoden zur Implementierung einer simulierten Anmeldung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!