python2 urllib2 重定向模拟学校图书馆用户登录(一)

2023-10-07 05:18

本文主要是介绍python2 urllib2 重定向模拟学校图书馆用户登录(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前的两篇文章,分别介绍了利用requests库进行登录和urllib2解决重定向的问题。

由于urllib2在处理重定向会丢失cookie,在这里利用这个MyHTTPRedirectHandlerclass可以解决该问题。

再次进行学校图书馆登录模拟(浏览器请求为post和get)

这里我们先进行利用重定向一次登录,只需要提交一次post请求,即可输出登录成功的页面。用户登录的图片在requests登录的地方就可以看到,这里就不写了,在那篇文章中指出了302返回的cookie在第二次get请求中是非常重要的。这个cookie是需要在请求的头部带上的。

import urllib2# 由于urllib重定向不带cookie,这里定义的class带cookie,使得重定向返回正确页面
# https://stackoverflow.com/questions/554446/how-do-i-prevent-pythons-urllib2-from-following-a-redirect
url = "http://210.32.205.60/login.aspx"header = {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
"Connection":"keep-alive",
"Content-Type":"application/x-www-form-urlencoded",
"Host":"210.32.205.60",
"Referer":	"http://210.32.205.60/login.aspx",
"Upgrade-Insecure-Requests":"1",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:54.0) Gecko/20100101 Firefox/54.0"
}body = b'__VIEWSTATE=%2FwEPDwUILTE0Mjc2MjEPZBYCAgMPZBYCAg8PDxYCHgdWaXNpYmxlaGRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYCBQxJbWFnZUJ1dHRvbjEFDEltYWdlQnV0dG9uMtIIHXEj%2BaKpKEuN3WBMS5An9yfKLqy76FI5Cs0ie1No&__VIEWSTATEGENERATOR=C2EE9ABB&__EVENTVALIDATION=%2FwEdAAbAeS%2BByzNg%2FXW9jIKItJSsl0eOxoEPS0IDqf0EHRx3vxEghZBVv0boc2NaC2%2FzVFQdp1z%2BnYWZ%2BpirZkxjR3dz6ZACrx5RZnllKSerU%2BIuKmLNV%2B2mZgnOAlNG5DVTg1uHvSo3x4u7p65TqmriJkDgirf2cB43UeZMqMyeVeS88Q%3D%3D&DropDownList1=0&TextBox1=读者号&TextBox2=密码&ImageButton1.x=44&ImageButton1.y=12'class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):def http_error_302(self, req, fp, code, msg, headers):print "Cookie manipulation Right Here"return urllib2.HTTPRedirectHandler.http_error_302(self, req, fp, code, msg, headers)http_error_301 = http_error_303 = http_error_307 = http_error_302cookieprocessor = urllib2.HTTPCookieProcessor()opener = urllib2.build_opener(MyHTTPRedirectHandler, cookieprocessor)
urllib2.install_opener(opener)request = urllib2.Request(url, headers=header, data=body)
response =urllib2.urlopen(request)
print response.read()print cookieprocessor.cookiejar   # 输出重定向返回头部中的的cookie


这篇关于python2 urllib2 重定向模拟学校图书馆用户登录(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/156263

相关文章

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT