最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python中两种方法实现模拟登陆的代码实例

来源:动视网 责编:小采 时间:2020-11-27 14:23:16
文档

Python中两种方法实现模拟登陆的代码实例

Python中两种方法实现模拟登陆的代码实例:这篇文章主要介绍了Python 模拟登陆的两种实现方法的相关资料,这里提供两种方法一个是普通写法写的,另外一个是基于面向对象写的,模拟登录成功后才可能抓取内容,需要的朋友可以参考下Python 模拟登陆的两种实现方法有时候我们的抓取项目时需要登陆到某个网
推荐度:
导读Python中两种方法实现模拟登陆的代码实例:这篇文章主要介绍了Python 模拟登陆的两种实现方法的相关资料,这里提供两种方法一个是普通写法写的,另外一个是基于面向对象写的,模拟登录成功后才可能抓取内容,需要的朋友可以参考下Python 模拟登陆的两种实现方法有时候我们的抓取项目时需要登陆到某个网


这篇文章主要介绍了Python 模拟登陆的两种实现方法的相关资料,这里提供两种方法一个是普通写法写的,另外一个是基于面向对象写的,模拟登录成功后才可能抓取内容,需要的朋友可以参考下

Python 模拟登陆的两种实现方法

有时候我们的抓取项目时需要登陆到某个网站上,才能看见某些内容的,所以模拟登陆功能就必不可少了,散仙这次写的文章,主要有2个例子,一个是普通写法写的,另外一个是基于面向对象写的。

模拟登陆的重点,在于找到表单真实的提交地址,然后携带cookie,post数据即可,只要登陆成功,我们就可以访问其他任意网页,从而获取网页内容。

方式一:

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'))

方式二:

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"))

文档

Python中两种方法实现模拟登陆的代码实例

Python中两种方法实现模拟登陆的代码实例:这篇文章主要介绍了Python 模拟登陆的两种实现方法的相关资料,这里提供两种方法一个是普通写法写的,另外一个是基于面向对象写的,模拟登录成功后才可能抓取内容,需要的朋友可以参考下Python 模拟登陆的两种实现方法有时候我们的抓取项目时需要登陆到某个网
推荐度:
标签: 实现 模拟 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top