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聊天室实现方法
Jun 28 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
python 保存float类型的小数的位数方法
Oct 17 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 Python
Python字符串的转义字符
Apr 07 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
Terran热键控制
2020/03/14 星际争霸
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
PHP中cookies使用指南
2007/03/16 PHP
PHP生成月历代码
2007/06/14 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
用python实现一个简单的验证码
2020/12/09 Python
Java工程师面试集锦之Spring框架
2013/06/16 面试题
网络信息管理员岗位职责
2014/01/05 职场文书
幼儿教师工作感言
2014/02/14 职场文书
二年级小学生评语
2014/04/21 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
医院保洁服务方案
2014/06/11 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android