python模拟表单提交登录图书馆


Posted in Python onApril 27, 2018

本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下

模拟表单提交的原理:

我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和浏览器中一样的响应。所以我们这里来模拟浏览器表单提交登录广东工业大学的图书馆 http://222.200.122.171:7771/login.aspx获取cookie,我们接下来访问图书馆网站里的其他页面时就带上这个cookie,服务器会认为我是已经登录的用户,回正常返回数据给我。

首先我们先用浏览器查看页面源代码找到要提交的form表单:

python模拟表单提交登录图书馆

接下来我们要获取表单中的input 包括hidden,因为hidden也会跟着表单一起提交.找到账号和密码对应的name  到时候我们需要用自己的账号填写的.

python模拟表单提交登录图书馆

获取到所有的要提交的表单内容后,将账号和密码替换成自己的账号和密码,提交请求.获取cookie并保存在cookie中。

代码如下(Python2.7版本 和Python3都其实都差不多):

# -*- coding:utf-8 -*- 
import urllib 
import urllib2 
import cookielib 
import bs4 
 
result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx") 
soup = bs4.BeautifulSoup(result, "html.parser") 
 
logindiv = soup.find("form", attrs={"name": "aspnetForm"}) 
Allinput = logindiv.findAll("input") 
inputData = {} 
for oneinput in Allinput: 
 if oneinput.has_attr('name'): 
  if oneinput.has_attr('value'): 
   inputData[oneinput['name']] = oneinput['value'] 
  else: 
   inputData[oneinput['name']] = "" 
inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****' 
inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******' 
 
filename = 'cookie.txt' 
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 
cookie = cookielib.MozillaCookieJar(filename) 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) 
postdata = urllib.urlencode(inputData) 
result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata) 
cookie.save(ignore_discard=True, ignore_expires=True) 
#登录后 要访问的url 
bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx" 
result=opener.open(bookUrl) 
print result.read()

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

Python 相关文章推荐
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
python队列原理及实现方法示例
Nov 27 Python
python实现滑雪者小游戏
Feb 22 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 Python
分享3个非常实用的 Python 模块
Mar 03 Python
Python 统计序列中元素的出现频度
Apr 26 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 #Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 #Python
python读取文件名称生成list的方法
Apr 27 #Python
python实现图书馆研习室自动预约功能
Apr 27 #Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 #Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 #Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 #Python
You might like
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
htm调用JS代码
2007/03/15 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
领导欢送会主持词
2015/07/06 职场文书