我正在尝试抓取我在本地图书馆借阅的物品的一些信息,但是我无法通过登录页面。
我在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
很有可能您的请求被阻止,尝试print(get_result.content)
,并在手动访问该页面时查看该HTML是否与该页面的HTML相同。如果它们不同,请尝试将用户代理设置为与您手动发送的请求相同。