Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiele für zwei Methoden zur Implementierung einer simulierten Anmeldung in Python

Codebeispiele für zwei Methoden zur Implementierung einer simulierten Anmeldung in Python

黄舟
黄舟Original
2017-08-10 14:18:361978Durchsuche

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!

Stellungnahme:
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