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中使用全局日志时需要注意的问题
May 06 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python实现杨氏矩阵查找
Mar 02 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
python实现求纯色彩图像的边框
Apr 08 Python
Python matplotlib多个子图绘制整合
Apr 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数据库密码的找回的步骤
2011/01/12 PHP
php常用Stream函数集介绍
2013/06/24 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
javascript 数组的方法集合
2008/06/05 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
小程序实现按下录音松开识别语音
2019/11/22 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
Numpy array数据的增、删、改、查实例
2018/06/04 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
解决python 上传图片限制格式问题
2019/10/30 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
总经理人事任命书
2014/06/05 职场文书
单位作风建设自查报告
2014/10/23 职场文书
搞笑老公保证书
2015/02/26 职场文书
python开发飞机大战游戏
2021/07/15 Python