Python 检索需要身份验证的页面内容

Python 检索需要身份验证的页面内容,python,json,authentication,python-3.x,python-requests,Python,Json,Authentication,Python 3.x,Python Requests,我可以使用基本的HTTP身份验证系统访问管理页面 此页面使用JavaScript加载数据,方法是从Firefox Web开发工具中可以看到的另一个URL检索JSON数据(组合Ctrl+Shift+I,然后进入网络选项卡并重新加载页面) 如果我将这个URL复制并粘贴到浏览器的同一个实例中,我将检索所需的JSON数据 因此: 使用Firefox,我连接到管理页面并提供用户名/密码 使用FirefoxWebdev工具箱,我检索用于检索所需JSON数据的URL 我复制并粘贴这个URL,然后获取所需的JS

我可以使用基本的HTTP身份验证系统访问管理页面

此页面使用JavaScript加载数据,方法是从Firefox Web开发工具中可以看到的另一个URL检索JSON数据(组合
Ctrl+Shift+I
,然后进入网络选项卡并重新加载页面)

如果我将这个URL复制并粘贴到浏览器的同一个实例中,我将检索所需的JSON数据

因此:

  • 使用Firefox,我连接到管理页面并提供用户名/密码
  • 使用FirefoxWebdev工具箱,我检索用于检索所需JSON数据的URL
  • 我复制并粘贴这个URL,然后获取所需的JSON数据,准备进行解析
  • 现在,我想使用Python3自动执行同样的操作

    我习惯于让它更容易。但是,如果我试图直接检索在步骤3中找到的URL,我会得到一个
    401身份验证
    错误:

    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/
    )我可以检索网页的内容,但它不包含任何有趣的内容,因为所有内容都是从步骤3中URL的JSON数据加载到JavaScript中的


    欢迎任何帮助

    我需要使用基于表单的身份验证,而不是我最初认为的HTTP基本身份验证

    因此,首先,我需要登录到第一个URL以检索身份验证cookie:

    url = "http://xxx/admin-ui/"
    credentials = {'j_username':'my_username','j_password':'my_passwd'}
    s = requests.session()
    s.post(url, credentials)
    s.cookies
    >>> <<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='JSESSIONID', value='...>
    

    尝试获取您获得的cookies,并在执行
    请求时使用它们。获取
    @laike9m谢谢您的建议!我试图检索
    r.cookies
    ,但得到一个空项:
    。知道吗?浏览器呢?你能看到饼干吗?
    url2 = "http://xxx/services/users?from=0&to=50"
    r = requests.get(url2, cookies=s.cookies)
    r.content
    >>> (a lot of JSON data! \o/)