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 相关文章推荐
pyqt4教程之widget使用示例分享
Mar 07 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
Python的in,is和id函数代码实例
Apr 18 Python
python计算auc的方法
Sep 09 Python
python的数学算法函数及公式用法
Nov 18 Python
python3实现名片管理系统(控制台版)
Nov 29 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
pandas中pd.groupby()的用法详解
Jun 16 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
php基础知识:函数基础知识
2006/12/13 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
Javascript中的常见排序算法
2007/03/27 Javascript
javascript 写类方式之二
2009/07/05 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
理解Python中的类与实例
2015/04/27 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
django 外键model的互相读取方法
2018/12/15 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
联强国际笔试题面试题
2013/07/10 面试题
家长给小学生的评语
2014/01/30 职场文书
区级文明单位申报材料
2014/05/15 职场文书
网站推广策划方案
2014/06/04 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
详解MindSpore自定义模型损失函数
2021/06/30 Python
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python