无法通过Python请求发布登录数据

问题描述 投票:0回答:1

我正在尝试抓取我在本地图书馆借阅的物品的一些信息,但是我无法通过登录页面。

我在Firefox中检查了该站点,我认为我的POST请求与那里看到的相同。但是,当我尝试使用Python查询时,我只会收到错误500。

import requests
from bs4 import BeautifulSoup

LOGIN_URL = 'https://www.buecherhallen.de/login.html'

with requests.Session() as session:
    get_result = requests.get(LOGIN_URL)
    login_root = BeautifulSoup(get_result.text, 'lxml')
    login_form = login_root.find('form', {'id': 'tl_login'})

    payload = {
        'FORM_SUBMIT': login_form.find('input', {'name':'FORM_SUBMIT'})['value'],
        'REQUEST_TOKEN': login_form.find('input', {'name': 'REQUEST_TOKEN'})['value'],
        'username': 'myname',
        'password': 'mypass'
    }
    post_result = requests.post(LOGIN_URL, data=payload)
    print(post_result)

我在做什么错?

编辑:Firefox显示以下标题,但是将它们添加到帖子中(我删除了长度)没有任何改变。

POST /login.html HTTP/1.1
Host: www.buecherhallen.de
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.buecherhallen.de/login.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 111
Origin: https://www.buecherhallen.de
DNT: 1
Connection: keep-alive
Cookie: _pk_id.2.888c=e27b9a9bbadfdc74.1585264176.24.1589919329.1589919311.; PHPSESSID=45dbcf287720b23a3e0f3e621be26ee3; _pk_ses.2.888c=1
Upgrade-Insecure-Requests: 1
python post python-requests
1个回答
0
投票

很有可能您的请求被阻止,尝试print(get_result.content),并在手动访问该页面时查看该HTML是否与该页面的HTML相同。如果它们不同,请尝试将用户代理设置为与您手动发送的请求相同。

© www.soinside.com 2019 - 2024. All rights reserved.