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实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python使用folium excel绘制point
Jan 03 Python
Python 多维List创建的问题小结
Jan 18 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
在Django的View中使用asyncio的方法
Jul 12 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
python通过文本在一个图中画多条线的实例
Feb 21 Python
Python内置异常类型全面汇总
May 28 Python
Python中qutip用法示例详解
Oct 02 Python
Python学习之时间包使用教程详解
Mar 21 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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&mysql(二)
2006/10/09 PHP
PHP提取中文首字母
2008/04/09 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
javascript dom 基本操作小结
2010/04/11 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python实现自动发送邮件功能
2021/03/02 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
python实现实时视频流播放代码实例
2020/01/11 Python
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
什么是索引指示器
2012/08/20 面试题
中药专业毕业自荐书范文
2014/02/08 职场文书
中等生评语大全
2014/05/04 职场文书
广告学专业求职信
2014/06/19 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
四风之害观后感
2015/06/09 职场文书
青年志愿者活动感想
2015/08/07 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS