Я пытаюсь загрузить исследовательскую статью в формате PDF через университетский прокси-сервер, в который мне нужно войти. Я попытался следовать [этому ответу] [1], но полученная загрузка содержит только веб-сайт для входа.
Я пытаюсь сделать это с python запросами следующим образом:
user_name = 'myname'
passwd = 'mypassword'
with requests.Session() as session:
session.headers.update({'User-Agent': 'Mozilla/5.0'})
# Parse the input form for the hidden input
r2 = requests.get(long_proxy)
soup = bs4.BeautifulSoup(r2.text, "html.parser")
form = soup.find('form')
hidden = form.find('input', attrs={'type':'hidden', 'name':'ezproxycsrftoken'}).attrs['value']
url_res = form.find('input', attrs={'type':'hidden', 'name':'url'}).attrs['value']
# set up the login
payload = {
'user': user_name,
'pass': passwd,
'ezproxycsrftoken': hidden,
'url': url_res
}
# post login
post = session.post(login, data=payload)
# get data
r3 = session.get(short_proxy)
with open('file.pdf', 'wb') as fid:
fid.write(r3.content)
- Однако загруженный файл на самом деле не является PDF, а оказывается html кодом страницы входа в систему.
Есть идеи, как получить PDF?
[1]: https://stackoverflow.com/questions/37816565/python-authentication-with-requests-library-via-post