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


Posted in Python onAugust 10, 2017

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中的join()方法的使用
May 19 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
原生python实现knn分类算法
Oct 24 Python
Django视图扩展类知识点详解
Oct 25 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python 网页解析HTMLParse的实例详解
Aug 10 #Python
关于Python中浮点数精度处理的技巧总结
Aug 10 #Python
Python 处理数据的实例详解
Aug 10 #Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 #Python
关于Python中空格字符串处理的技巧总结
Aug 10 #Python
Python排序算法实例代码
Aug 10 #Python
简单谈谈python中的语句和语法
Aug 10 #Python
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
动态加载js的几种方法
2006/10/23 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
JS创建Tag标签的方法详解
2017/06/09 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
python创建和使用字典实例详解
2013/11/01 Python
Python生成随机MAC地址
2015/03/10 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
某科技软件测试面试题
2013/05/19 面试题
电话客服工作职责
2014/07/27 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
岗位聘任协议书
2015/09/21 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
深入浅析Django MTV模式
2021/09/04 Python
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
springboot用户数据修改的详细实现
2022/04/06 Java/Android
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL