如何使用Python- 401错误浏览网站时维护会话

时间:2019-06-17 08:38:49

标签: python python-3.x scripting

我正在尝试编写一个Python脚本来登录到网站并导航到成功登录后的链接。导航到其他链接时,我无法维护会话。

我尝试通过使用请求导入来做到这一点。导航到其他页面时,我能够登录该网站并收到401错误。

import requests
from lxml import html

USERNAME = "AMITHSR"
PASSWORD = "******"

LOGIN_URL = "https://login.apigee.com/login"
TARGET_URL = "https://apigee.com/organizations/amithsr77-eval/proxies"


def main():
    session_requests = requests.session()

    # Get login csrf token
    result = session_requests.get(LOGIN_URL)
    tree = html.fromstring(result.text)
    authenticity_token = list(set(tree.xpath("//input[@name='X-Uaa-Csrf']/@value")))[0]

    # Create payload
    payload = {
        "username": USERNAME,
        "password": PASSWORD,
        "X-Uaa-Csrf": authenticity_token
    }

    # Perform login
    result = session_requests.post(LOGIN_URL, data=payload, headers=dict(referer=LOGIN_URL))
    print(result)

    page = session_requests.get(TARGET_URL)//401 error is here
    tree2 = html.fromstring(page.content)

1 个答案:

答案 0 :(得分:0)

我认为您需要为此任务使用requests.sessions.Session()。 (我安装的requests.session()文档中已弃用了此文件。)

如果您使用Session()对象,则可以准备请求,然后发送请求,并且应该允许您随后对目标网址进行GET()。