我正在尝试编写一个 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)
我认为您需要使用requests.sessions.Session()
来完成此任务。(我的安装requests.session()
文档说这已被弃用(。
如果您使用 Session()
对象,您可以准备请求然后发送它,这应该允许您 GET(( 您的目标 URL。