第一位成功幫忙解決問題,讓我之後可重複成功登入A網站及B網站,而不用手動先登入取cookie者,以新台幣2000元作為感謝,因是內網網站,且無法使用遠端桌面,可能得視訊指導…
之前有用selenium成功爬了,requests卻怎麼都搞不定,始終卡在登入階段…
○目的:
我想用帳密登入A網站,透過A網站的連結,登入我不知道帳密的B網站。
○程式碼:
我把程式碼放在github:https://reurl.cc/2b879r
○問題點1:
發生在登入A網站時,
所有header,除了會變動的,其他完全複製貼上F12裡面的內容,
我看F12中Request URL: LoginPage的Request Headers裡cookie: JSESSIONID=亂碼甲
但我用程式碼跑時,
headers裡cookie要只放requests取得的亂碼乙或手動用瀏覽器登入取得的亂碼甲才能成
功登入進A站,
而不能cookie放requests取得的JSESSIONID=亂碼乙,或手動用瀏覽器登入取得的
JSESSIONID=亂碼甲,
為什麼不放JSESSIONID=才能成功呢?
○問題點2:
發生在登入A網站成功後,透過A網站給的連結登入我不知道帳密的B網站,
這時F12中Request URL: 登入成功後的網址的Request Headers裡同樣cookie:
JSESSIONID=亂碼甲
跟前面問題點1的cookie是完全一樣的。
可是這邊我用程式碼跑,
headers裡無論放requests取得的亂碼乙或requests取得的JSESSIONID=亂碼乙都失敗,
無法成功get到資料。
如果我直接把用瀏覽器登入成功的JSESSIONID=亂碼甲放到程式碼中headers裡,
就能成功get到之後要post需要的資料。
若只放瀏覽器登入成功的亂碼甲同樣會失敗。
○總結:
我不懂為什麼問題點1跟問題點2中Request Headers裡同樣都是cookie: JSESSIONID=亂碼
甲,
第1個是要只輸入requests取得的亂碼乙,或瀏覽器取得的亂碼甲,
第2個是只能用瀏覽器取得的JSESSIONID=亂碼甲呢?
F12 Request Headers裡cookie都一樣的啊...
○狀況簡易分析:
requests取得的:亂碼乙、JSESSIONID=亂碼乙
瀏覽器取得的:亂碼甲、JSESSIONID=亂碼甲
問題點1可成功的:亂碼乙、亂碼甲
問題點2可成功的:JSESSIONID=亂碼甲