Maison > Article > développement back-end > Exemples de code de deux méthodes pour implémenter une connexion simulée en Python
Cet article présente principalement des informations pertinentes sur deux méthodes d'implémentation de connexion simulée en Python. Voici deux méthodes : l'une est écrite en écriture ordinaire et l'autre est écrite en mode orienté objet. la connexion simulée est réussie. Contenu, les amis dans le besoin peuvent se référer aux éléments suivants
Deux méthodes d'implémentation de la connexion simulée Python
Parfois, lorsque nous explorons des projets, nous devons nous connecter. sur un certain site Web. Uniquement pour voir certains contenus, la fonction de connexion simulée est indispensable. L'article écrit par Sanxian cette fois contient principalement deux exemples, l'un est écrit avec une méthode d'écriture ordinaire et l'autre est basé sur une méthode d'écriture orientée objet. en écrivant.
L'objectif de la connexion simulée est de trouver la véritable adresse de soumission du formulaire, puis de transporter des cookies et des données de publication. Tant que la connexion est réussie, nous pouvons accéder à n'importe quelle autre page Web pour obtenir la page Web. contenu.
Méthode 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'))
Méthode 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"))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!