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中生成器和yield语句的用法详解
Apr 17 Python
Python基于DES算法加密解密实例
Jun 03 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
pytorch中的transforms模块实例详解
Dec 31 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
Python实现壁纸下载与轮换
Oct 19 Python
利用python做数据拟合详情
Nov 17 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 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
php-app开发接口加密详解
2018/04/18 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
图解js图片轮播效果
2015/12/20 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python3实现生成随机密码的方法
2014/08/23 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python3实现高效的端口扫描
2019/08/31 Python
Python 寻找局部最高点的实现
2019/12/05 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
刮痧观后感
2015/06/05 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书