我尝试登录这些网站: https://www.epexspot.com/en/extras/EPEXme/login使用 Python 的 requests 方法。我尝试了以下代码,但由于我对此很陌生,因此很难从网站上获取相关的 header 信息。
from requests import session
payload = {
'text': 'username',
'password': 'password',
'logon': 'username',
'submit': 'Login'
}
headers = {
'Referer': 'https://www.epexspot.com/en/extras/EPEXme/login/login/
aHR0cHM6Ly93d3cuZXBleHNwb3QuY29tL2VuL21hcmtldC1kYXRhL2hpc3RvcmljYWwtZGF0YS9
yZXRyaWV2ZS9hdWN0aW9uX19nZXJtYW55X2F1c3RyaWEvYXVjdGlvbl9zcG90X3
ByaWNlc19nZXJtYW55X2F1c3RyaWFfMjAxNC5jc3Y%3D'
'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0'
}
with session() as c:
c.post('link', data=payload, verify=False, headers=headers)
request = c.get('https://www.epexspot.com/en/market-data/historical-data/retrieve
_auction_germany_austria/auction_spot_prices_germany_austria_2014.csv, verify=False)
request.content
然而,request.content 给我的是登录网站的信息,而不是我想要的内容。 如上所述,我对这个登录工具真的很陌生。我在这里读了很多书,但我想我的主要问题是如何理解和识别我需要从网站中提取的组件(标题、有效负载)。 我知道可能还有其他工具可以完成相同的工作,但我的主要目标是了解这些基础知识。
谢谢!!!
最佳答案
看一下页面登录的HTML源码<form>
,在第 267 到 292 行。
您需要将负载数据提交到表单的 action
中的 URL属性:“https://www.epexspot.com/en/extras/EPEXme/login/User/show_login_form”。
有效负载数据将包含各种 <form>
的名称和值。数据元素(通常是 <input>
元素,但有时也包括其他元素,如 <textarea>
),包括任何隐藏元素。此页面的相关元素命名为:
“User-show_login_form[form][login][page1][page_values][page_sent]”
"User-show_login_form[form][login][page1][login][]"
"User-show_login_form[form][login][page1][password][]"
免责声明:我从来没有使用 Requests 做过这种事情(我上一次做是在几年前,使用 urllib2),所以希望其他人能提供更多细节。
关于Python登录https网站(epex spot)使用requests下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729893/