我試圖登錄到這些網站: https://www.epexspot.com/en/extras/EPEXme/login使用Python的請求方法。我嘗試了下面的代碼,但由於我真的很新,所以我很難從網站上獲取相關的標題信息。Python登錄到https網站(epex spot)使用請求下載文件
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給了我登錄網站的信息,而不是我想要的內容。如上所述,我對這個登錄stuf真的很陌生。我在這裏讀了很多,但我想我的主要問題是如何理解和識別我需要從網站中提取的組件(標頭,有效載荷)。 我知道可能有其他工具可以完成同樣的工作,但我的主要目標是瞭解這些基礎知識。
謝謝!
嗨,非常感謝你,嘗試過但沒有成功。你知道我必須在這裏放置什麼:「User-show_login_form [form] [login] [page1] [page_values] [page_sent]」 – Johannes 2014-11-04 09:31:46
這就是269行上隱藏的輸入元素的名稱,它具有一個常量值的「1」。在更復雜的表單中,隱藏字段可能會被客戶端JavaScript修改,但我們不必擔心這一點。我沒有仔細查看該頁面的所有HTML源代碼,但希望我們只需要關注登錄表單本身的源代碼。但正如我在我的回答中提到的那樣,我對這類東西有點不習慣,可能有一些重要的東西我忘記了。 – 2014-11-04 09:41:51
非常感謝,它現在可以工作!我把「1」並排除了一個打字錯誤。 – Johannes 2014-11-04 10:56:55