访问需要基本HTTP身份验证的网页

时间:2017-01-06 14:50:23

标签: python

我正在尝试网页抓取一个要求提供凭据作为弹出窗口的网站。

这是当网站需要HTTP Auth时获得的弹出窗口。

import requests 
r = requests.get('https://thewebsiteiwant.com', auth=('Myuser', 'Mypass'))
print(r.status_code) #This is now 401, however it used to be 200

我尝试过的事情:

  1. 使用requests.Session(),然后首先发布到登录页面。技术上有一个登录页面,但是在尝试直接访问页面时根本不显示该页面。
  2. 查看Chrome中保存的Cookie并尝试在Python中重新创建它们。
  3. 将网络请求复制为cURL,然后使用cURL到Python转换器。
  4. 使用cookielib存储Cookie。
  5. 将用户代理添加到请求中。
  6. Selenium不适用于此项目。该程序将在无头RPi上运行。

1 个答案:

答案 0 :(得分:1)

如果auth正常工作(手动输入),也许你可以尝试为你的身份验证选择dormain,这样程序就知道你准备登录的确切位置。这可以通过使用找到here.

的模块request_ntlm来实现

您可以通过以下方式使用它:

from requests_ntlm import HttpNtlmAuth

您将auth放在request.get()

中的位置
auth=HttpNtlmAuth('DOMAIN HERE\\user','pass')