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错误)相关推荐

  1. python的request请求401_Python模拟HTTPS请求返回HTTP 401 unauthorized错误

    Python模拟HTTPS请求返回HTTP 401 unauthorized错误 开始是使用的 httplib模块,代码如下: header = {"Content-type": ...

  2. Python requests HTTP验证登录实现流程

    对我而言最重要的是这几句 假设url为http://xxx.yyy.zzz 用户名为admin 密码为123456 则访问的网址应该为http://admin:123456@xxx.yyy.zzz[h ...

  3. python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证

    1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...

  4. Python 深入浅出 - 网络请求库 Requests

    Requests 是用 Python 语言编写的,基于 urllib,采用 Apache2 Licensed 开元协议的 HTTP 库,它比 urllib 更加方便,编写爬虫和测试服务器响应数据时经常 ...

  5. Python的Request请求跳过认证及禁用警告

    1.跳过认证 在使用python做测试测试的时候,因为认证报错,可以添加verify=False跳过认证,如下: 2.禁用警告 此时,代码运行不受影响,请求会成功,但结果会报错: 不影响运行,但感觉不 ...

  6. python发送request请求并解析返回的json

    安装request库 post: Response = requests.post(url='http://zaxy.zjjy.xyz/socket/equipment/subRegions',dat ...

  7. Python 爬虫 Request(请求头)和Response(响应头)的 内容详解 【爬虫资料二】

    Resquest请求头[以访问知乎]为例(使用Fiddler抓的包) 请求行包含的信息: 请求的方法(POST)  #其他的方法还有GET.HEAD.PUT.DELETE.OPTIONS.TRACE ...

  8. 微信小程序wx.request请求封装,和跨域的解决。

    建议把所有请求抽离到不同页面对应的js文件中,可以方便后期的修改和排查问题,小程序请求是通过微信后台来请求我们的后台地址来进行后端映射.你请求的接口实际到微信的后端做了一道映射,微信后端拿到你的 wx ...

  9. Python发送网络请求(requests)

    Python发送网络请求(requests) Python已经是广泛使用的脚本语言了,我们可以使用requests库进行网络请求. 在PyPI中搜索requests,就可以找到这个库 1. 安装 pi ...

最新文章

  1. PCA--主成分分析(Principal components analysis)-最大方差解释
  2. 把mysql部署在局域网的服务器上,远程连接mysql时报错误代码1130 Host ‘***.***.***.***’is not allowed to connect to this MySQL
  3. xtrabackup 官方原理
  4. Linux进程核心代码怎么查看,GCOV查看arm-linux代码覆盖率
  5. 鸿蒙os2.0开发者beta版,鸿蒙 OS 2.0 开发者beta版针对Mate 40系列设备开放
  6. Flask 应用部署方式之 Flask+Gunicorn+Nginx
  7. 【Ant Design Vue】之Grid栅格和Space间距
  8. 编程高手必学的内存知识02:深入理解栈
  9. 比较SynchronizedMap、Hashtable和ConcurrentHashMap的效率
  10. 【读史笔记】《晋书·卫玠列传》
  11. matlab非牛顿流体,可用于常见非牛顿流体的数值模拟方法与流程
  12. 好用的3D建模软件,就是不用?
  13. 使用Laravel和Vue.js2.5进行服务器端渲染
  14. mysql官网默认账号缪_Mysql账户设置_增删改查_表操作
  15. 一桩VIM引发的血案
  16. 产品经理如何建立和促进心理安全
  17. H5游戏开发-面向对象编程
  18. 齐博x1新用户手工注册接口
  19. 2020年蓝桥杯省赛题目——既约分数
  20. ZOJ1845 Australian Voting

热门文章

  1. DLL动态链接库的工作原理
  2. 【Paddle】解压文件到指定文件夹
  3. [云炬ThinkPython阅读笔记]2.10 练习
  4. 云炬随笔20180606
  5. 云炬随笔20161117
  6. wdpc V3 phpmyadmin打不开的一种解决方式(实测有效)
  7. GRE难句典型结构2
  8. VTK修炼之道56:图形基本操作进阶_表面重建技术(三维点云曲面重建)
  9. MySQL数据库中导入导出方法以及工具介绍
  10. C++ builder 的文件读写操作总结