我知道有很多關於如何做到這一點的線程和視頻,我已經通過了他們,需要一點先進的指導。使用請求張貼登錄到本網站無法使用
我想登錄到這個網頁,我有一個帳戶,所以我可以發送請求下載報告。
首先我發送get
請求到登錄頁面,然後發送post
請求,但當我print(resp.content)
時,我得到代碼返回登錄頁面。我確實得到了一個代碼[200],但我無法進入索引頁面。無論我嘗試get
什麼頁面後門柱它讓我重定向回到登錄頁面
這裏有幾件事情我不知道,如果我做了正確的:
- 對於頭我只是把我檢查頁面時列出的所有東西放在一起
- 不知道我是否需要對cookie做些什麼?
下面是我的代碼:
import requests
import urllib.parse
url = 'https://myurl.com/login.php'
next_url = 'https://myurl.com/index.php'
username = 'myuser'
password = 'mypw'
headers = {
'Host': 'url.myurl.com',
'Connection': 'keep-alive',
'Content-Length': '127',
'Cache-Control': 'max-age=0',
'Origin': 'https://url.myurl.com',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Referer': 'https://url.myurl.com/login.php?redirect=1',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.8',
'Cookie': 'PHPSESSID=3rgtou3h0tpjfts77kuho4nnm3'
}
login_payload = {
'XXX_login_name': username,
'XXX_login_password': password,
}
login_payload = urllib.parse.urlencode(login_payload)
r = requests.Session()
r.get(url, headers = headers)
r.post(url, headers = headers, data = login_payload)
resp = r.get(next_url, headers = headers)
print(resp.content)
你能分享實際的網址是什麼?我會從你的標題中刪除cookie,並讓請求在初始請求中設置cookie,如果需要的話 –
這裏是實際的鏈接'https:// eym.sicomasp.com/login.php'謝謝! –