[問題] requests的cookie問題已刪文

看板Python作者 (敲敲)時間4年前 (2021/02/11 17:57), 4年前編輯推噓1(1012)
留言13則, 2人參與, 4年前最新討論串1/1
第一位成功幫忙解決問題,讓我之後可重複成功登入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=亂碼甲 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.29.253.151 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1613037436.A.620.html ※ 編輯: museangel (1.34.27.24 臺灣), 02/11/2021 20:58:19

02/11 21:24, 4年前 , 1F
先試著不同domain不同requests.session ?
02/11 21:24, 1F

02/11 21:24, 4年前 , 2F
再去迴圈把A session 的cookie 利用 session.cookies.se
02/11 21:24, 2F

02/11 21:24, 4年前 , 3F
t去倒入B session
02/11 21:24, 3F

02/11 21:24, 4年前 , 4F
不太建議在requests上用header去操作cookie (session其
02/11 21:24, 4F

02/11 21:24, 4年前 , 5F
實他操作不到)
02/11 21:24, 5F

02/11 21:24, 4年前 , 6F
requests其實是有處理set-cookie domain/httpOnly...那
02/11 21:24, 6F

02/11 21:24, 4年前 , 7F
類資料的
02/11 21:24, 7F

02/11 21:24, 4年前 , 8F
requests處理很多東西,除非你能清楚地看到中間傳送的封
02/11 21:24, 8F

02/11 21:24, 4年前 , 9F
包差異
02/11 21:24, 9F

02/11 21:24, 4年前 , 10F
建議用Chalres 或是掛其他Proxy web debuger去查看封包
02/11 21:24, 10F

02/11 21:25, 4年前 , 11F
我應該回文才對= =
02/11 21:25, 11F

02/12 12:52, 4年前 , 12F
從 A 登入 B? 這邊交換登入資料的地方不見得是 cookie,
02/12 12:52, 12F

02/12 12:52, 4年前 , 13F
也可能放在url parameter 或 post
02/12 12:52, 13F
文章代碼(AID): #1W9FzyOW (Python)
文章代碼(AID): #1W9FzyOW (Python)