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实现批量转换文件编码的方法
Jul 28 Python
深入理解python多进程编程
Jun 12 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
python实现扫雷游戏的示例
Oct 20 Python
python调用win32接口进行截图的示例
Nov 11 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
pytest配置文件pytest.ini的详细使用
Apr 17 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统计数组元素个数的方法
2015/07/02 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
prototype 的说明 js类
2006/09/07 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
班组长工作职责
2013/12/25 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
小加工厂管理制度
2014/01/21 职场文书
关于赌博的检讨书
2014/01/24 职场文书
校园之声广播稿
2014/01/31 职场文书
考核评语大全
2014/04/29 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
2019年最新借条范本!
2019/07/08 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
CSS基础详解
2021/10/16 HTML / CSS