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 相关文章推荐
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 Python
python实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
Python 功能和特点(新手必学)
Dec 30 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
Python中文件的读取和写入操作
Apr 27 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python多图片合并PDF的方法
Jan 03 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Python PIL图片添加字体的例子
Aug 22 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Python安装OpenCV的示例代码
Mar 05 Python
怎么解决pycharm license Acti的方法
Oct 28 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 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
Python matplotlib实时画图案例
2020/04/23 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
python中的列表和元组区别分析
2020/12/30 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
元旦晚会感言
2014/03/12 职场文书
大学学风建设方案
2014/05/04 职场文书
应届大专生求职信
2014/06/26 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
家长给老师的感谢信
2015/01/20 职场文书
发布会邀请函
2015/01/31 职场文书
长江七号观后感
2015/06/11 职场文书
天气温馨提示语
2015/07/14 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python