Python模拟登陆实现代码


Posted in Python onJune 14, 2017

下面分享一个使用Python进行网站模拟登陆的小例子。

原理

使用Cookie技术,绕开网站登录验证。要使用到cookielib库。流程:

  1. 创建一个保存Cookie的容器,可选的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之间的关系是CookieJar —-派生—->FileCookieJar —-派生—?>MozillaCookieJar和LWPCookieJar.
  2. 然后创建一个处理Cookie的处理器handler.通过urllib2.HTTPCookieProcessor(cookie)即可
  3. 创建一个用于开启网站的opener。即可。这个opener相比于urllib2.urlopen方法更为普通一点而已。opener = urllib2.build_opener(handler)。
  4. 然后我们就可以正常的使用opener来访问网络了。

小案例

实现的功能是模拟登录到大连理工大学的教务网站。代码如下:

# coding:UTF-8

import urllib,urllib2,cookielib

filename = r'F:\pachong\gaoqing\dlutcookie.txt'
# show cookie and save to local
cookie = cookielib.MozillaCookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
# 记得使用urllib模块进行参数的encode
postdata = urllib.urlencode({
  # 哈哈,本宫不给你们我的账号?(?^?)?
  'zjh':'xxxxxxxxx',
  'mm':'XXXXXX'
})


# 登陆到教务系统的url
url = 'http://zhjw.dlut.edu.cn/loginAction.do'

# 开始进行模拟登陆,并把cookie保存到变量
response = opener.open(url,postdata)
cookie.save(filename,ignore_discard=True,ignore_expires=True)

# 打印一下获得的cookie信息吧
for item in cookie:
  item.name + ' = ' + item.value




# 利用cookie访问另一个网址  登陆到个人成绩的URL
course_url='http://zhjw.dlut.edu.cn/xkAction.do?actionType=6'
course_header={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',
  'referer':'http://zhjw.dlut.edu.cn/menu/s_main.jsp'
}

result = opener.open(course_url)
print result.read()

运行结果

Python模拟登陆实现代码

总结

其实对于模拟登陆而言,第一次的登陆就是为了获取那个cookie数据。然后通过我们创建的opener来完成接下来我们要进行的关键的进一步的操作。我们需要理解的就只是那个cookie的使用的流程就行了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 Python
Python实现计算两个时间之间相差天数的方法
May 10 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
详解Django中间件的5种自定义方法
Jul 26 Python
Django Rest framework之认证的实现代码
Dec 17 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
Python 自动刷博客浏览量实例代码
Jun 14 #Python
python简单线程和协程学习心得(分享)
Jun 14 #Python
Python字符串处理实现单词反转
Jun 14 #Python
python3实现UDP协议的服务器和客户端
Jun 14 #Python
老生常谈Python基础之字符编码
Jun 14 #Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 #Python
Python之re操作方法(详解)
Jun 14 #Python
You might like
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
PHP实现的购物车类实例
2015/06/17 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
python操作CouchDB的方法
2014/10/08 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
学年自我鉴定
2014/01/16 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
物业管理工作方案
2014/05/10 职场文书
服务承诺书格式
2014/05/21 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
个人承诺书格式范文
2015/04/29 职场文书
反邪教学习心得体会
2016/01/15 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL