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 fileinput模块使用介绍
Nov 30 Python
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
使用Python写一个小游戏
Apr 02 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
Python爬虫基础讲解之请求
May 13 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类
2008/04/09 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
php实现的mongodb操作类
2015/05/28 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Python实现数值积分方式
2019/11/20 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
新闻学专业应届生求职信
2013/11/08 职场文书
婚前协议书
2014/04/15 职场文书
青年志愿者活动总结
2014/04/26 职场文书
机械机修工岗位职责
2014/08/03 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2015年组织部工作总结
2015/04/03 职场文书
七一晚会主持词
2015/06/29 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP