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 命令行非阻塞输入的小例子
Sep 27 Python
python数据结构之二叉树的遍历实例
Apr 29 Python
Python抓取百度查询结果的方法
Jul 08 Python
json跨域调用python的方法详解
Jan 11 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
python中for用来遍历range函数的方法
Jun 08 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
python print出共轭复数的方法详解
Jun 25 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
python能自学吗
Jun 18 Python
python+selenium实现12306模拟登录的步骤
Jan 21 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
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python生成密码字典的方法
2018/07/06 Python
python中return如何写
2020/06/18 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
一些关于MySql加速和优化的面试题
2014/01/30 面试题
餐饮业会计岗位职责
2013/12/19 职场文书
教师节商场活动方案
2014/02/13 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
民主评议党员总结
2014/10/20 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
祝寿主持词
2015/07/02 职场文书
nginx 配置指令之location使用详解
2022/05/25 Servers