python的request请求401_Python requests HTTP验证登录(解决401错误)
1、场景
1)用户输入完网址后,浏览器直接弹出需要输入用户名/密码
PS:此时输入用户名密码即可登录,或者直接带着用户名密码访问网站。
假设url为http://xxx.yyy.zzz
用户名为admin
密码为123456
则访问的网址应该为http://admin:123456@xxx.yyy.zzz【http://username:password@url】
直接访问改网址即可
2)利用requests.get(url)返回状态码为401
#-*- encoding=utf-8 -*-
importrequestsif __name__ == '__main__':
url= 'http://xxxxx.yyyyyy'response= requests.get(url=url)
status_code=response.status_codeprintstatus_code
text=response.textprint text
运行
401
401 - Unauthorized: Access is denied due to invalid credentials.
Server Error
401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied.
2、HTTP基础验证
这是一种简单的身份认证,它是通过http的authorization请求头中,携带经过base64加密的用户名和密码而实现的一种认证
#-*- encoding=utf-8 -*-
importrequestsfrom requests.auth importHTTPBasicAuthif __name__ == '__main__':
url= 'http://xxx.yyy.zzz'user= 'admin'password= '123456'response= requests.get(url=url, auth=HTTPBasicAuth(user, password))#或者
#response = requests.get(url=url, auth=(user, password))
print response.status_code
3、摘要式身份认证
#-*- encoding=utf-8 -*-
importrequestsfrom requests.auth importHTTPDigestAuthif __name__ == '__main__':
url= 'http://xxx.yyy.zzz'user= 'admin'password= '123456'response= requests.get(url, auth=HTTPDigestAuth(user, password))print response.status_code
如果2和3都不行,还是返回401,此时可以试试第4种
使用2和3依旧返回401,此时可以print出response.headers看一下
#-*- encoding=utf-8 -*-
importrequestsfrom requests.auth importHTTPDigestAuthif __name__ == '__main__':
url= 'http://xxx.yyy.zzz'user= 'admin'password= '123456'response= requests.get(url, auth=HTTPDigestAuth(user, password))printresponse.status_codeprint response.headers
运行
401{'Content-Length': '', 'X-Powered-By': 'ASP.NET', 'Server': 'Microsoft-IIS/7.5', 'Date': 'Fri, 05 Jun 2020 05:36:23 GMT', 'Content-Type': 'text/html', 'WWW-Authenticate': 'Negotiate, NTLM'}
打印后可看到headers中带有字样'WWW-Authenticate': 'Negotiate, NTLM',表示需要ntlm验证,此时尝试使用第4种
4、ntlm验证
#-*- encoding=utf-8 -*-
importrequestsfrom requests_ntlm importHttpNtlmAuthif __name__ == '__main__':
url= 'http://xxx.yyy.zzz'user= 'admin'password= '123456'response= requests.get(url, auth=HttpNtlmAuth(user, password))printresponse.status_codeprint response.headers
python的request请求401_Python requests HTTP验证登录(解决401错误)相关推荐
- python的request请求401_Python模拟HTTPS请求返回HTTP 401 unauthorized错误
Python模拟HTTPS请求返回HTTP 401 unauthorized错误 开始是使用的 httplib模块,代码如下: header = {"Content-type": ...
- Python requests HTTP验证登录实现流程
对我而言最重要的是这几句 假设url为http://xxx.yyy.zzz 用户名为admin 密码为123456 则访问的网址应该为http://admin:123456@xxx.yyy.zzz[h ...
- python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证
1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...
- Python 深入浅出 - 网络请求库 Requests
Requests 是用 Python 语言编写的,基于 urllib,采用 Apache2 Licensed 开元协议的 HTTP 库,它比 urllib 更加方便,编写爬虫和测试服务器响应数据时经常 ...
- Python的Request请求跳过认证及禁用警告
1.跳过认证 在使用python做测试测试的时候,因为认证报错,可以添加verify=False跳过认证,如下: 2.禁用警告 此时,代码运行不受影响,请求会成功,但结果会报错: 不影响运行,但感觉不 ...
- python发送request请求并解析返回的json
安装request库 post: Response = requests.post(url='http://zaxy.zjjy.xyz/socket/equipment/subRegions',dat ...
- Python 爬虫 Request(请求头)和Response(响应头)的 内容详解 【爬虫资料二】
Resquest请求头[以访问知乎]为例(使用Fiddler抓的包) 请求行包含的信息: 请求的方法(POST) #其他的方法还有GET.HEAD.PUT.DELETE.OPTIONS.TRACE ...
- 微信小程序wx.request请求封装,和跨域的解决。
建议把所有请求抽离到不同页面对应的js文件中,可以方便后期的修改和排查问题,小程序请求是通过微信后台来请求我们的后台地址来进行后端映射.你请求的接口实际到微信的后端做了一道映射,微信后端拿到你的 wx ...
- Python发送网络请求(requests)
Python发送网络请求(requests) Python已经是广泛使用的脚本语言了,我们可以使用requests库进行网络请求. 在PyPI中搜索requests,就可以找到这个库 1. 安装 pi ...
最新文章
- PCA--主成分分析(Principal components analysis)-最大方差解释
- 把mysql部署在局域网的服务器上,远程连接mysql时报错误代码1130 Host ‘***.***.***.***’is not allowed to connect to this MySQL
- xtrabackup 官方原理
- Linux进程核心代码怎么查看,GCOV查看arm-linux代码覆盖率
- 鸿蒙os2.0开发者beta版,鸿蒙 OS 2.0 开发者beta版针对Mate 40系列设备开放
- Flask 应用部署方式之 Flask+Gunicorn+Nginx
- 【Ant Design Vue】之Grid栅格和Space间距
- 编程高手必学的内存知识02:深入理解栈
- 比较SynchronizedMap、Hashtable和ConcurrentHashMap的效率
- 【读史笔记】《晋书·卫玠列传》
- matlab非牛顿流体,可用于常见非牛顿流体的数值模拟方法与流程
- 好用的3D建模软件,就是不用?
- 使用Laravel和Vue.js2.5进行服务器端渲染
- mysql官网默认账号缪_Mysql账户设置_增删改查_表操作
- 一桩VIM引发的血案
- 产品经理如何建立和促进心理安全
- H5游戏开发-面向对象编程
- 齐博x1新用户手工注册接口
- 2020年蓝桥杯省赛题目——既约分数
- ZOJ1845 Australian Voting