【发布时间】:2014-06-16 08:04:28
【问题描述】:
我可以使用基本的 HTTP 身份验证系统访问管理页面。
此页面使用 JavaScript 加载数据,方法是从我可以在 Firefox Web 开发工具中看到的另一个 URL 检索 JSON 数据(组合 Ctrl+Shift+I,然后进入“网络”选项卡并重新加载页面)
如果我将此 URL 复制并粘贴到我的浏览器的同一实例中,我会检索我需要的 JSON 数据。
所以:
- 使用 Firefox,我连接到管理页面并提供用户名/密码。
- 使用 Firefox Webdev 工具箱,我检索用于检索我想要的 JSON 数据的 URL。
- 我复制并粘贴此 URL 并获取我需要的 JSON 数据,准备进行解析。
现在,我想使用 Python 3 自动执行相同的操作。
我使用Requests 使其更容易。但是,如果我尝试直接检索在步骤 3 中找到的 URL,则会收到 401 Authentication 错误:
import requests
url = "http://xxx/services/users?from=0&to=50"
r = requests.get(url, auth=('user', 'passwd'))
r.status_code
>>> 401
我可以在管理 URL(类似于http://xxx/admin-ui/)上执行经过身份验证的请求,并且可以检索网页的内容,但它不包含任何有趣的内容,因为所有内容都是从 JSON 数据传入的 JavaScript 中加载的从步骤 3 中的 URL...
欢迎任何帮助!
【问题讨论】:
-
在
requests.getrequests.get时尝试获取你获得的cookies并使用它们 -
@laike9m 感谢您的建议!我试图检索
r.cookies,但得到一个空项目:<<class 'requests.cookies.RequestsCookieJar'>[]>。有什么想法吗? -
浏览器呢?有没有你能看到的 cookie?
标签: python json authentication python-3.x python-requests