求助python3 302重定向鎐ookie問題

時間 2021-10-14 20:25:47

1樓:

通過昨天寫的python指令碼,我已經註冊啟用了50個box.net賬號,用作上傳檔案。

今天我繼續寫**,用來自動登入box.net並獲取所有檔案的分享連結。

不過測試的時候出現了點問題,賬號資訊正確,但總是登入不成功。

headers中referer、user-agent都有偽造,cookie也有傳送。

通過設定debuglevel=1跟蹤http請求,最終發現了問題:12

urllib2很聰明,在發現httpresponse中有重定向(301, 302)時會自動轉向請求這個新的url,

但urllib2有個嚴重的問題,它沒有帶著cookie去請求新的url。

這也是說,前期我們通過一個post請求來獲取cookie(對應著伺服器上的session),

但urllib2卻沒有帶著必要的cookie去訪問需要授權的頁面。

一開始我是想直接用httplib的,考慮到前後一致性才全部用urllib2,結果urllib2又出問題。。。

解決這個問題,可以:

1. 換httplib來實現,它不會像urllib2會自動處理重定向,cookie不會丟

2. 截獲重定向,禁止urllib2自動處理

我選擇了重寫urllib2.httpredirecthandler的http_error_302方法,截獲302,讓urllib2不再處理302:12

然後在urllib2.build_opener方法中用httpredirect_handler的一個例項做引數,例如:12

這樣,當我們用上述opener去post登入時,遇到302就不會再自動轉向了,

登入成功獲取到的cookie也不會丟。

後面再帶著self.cookie去請求需要授權的頁面,就可以獲取到正確的內容了。

怎麼實現一個html網頁阻止被302重定向? 5

2樓:育知同創教育

實現html網頁阻止被302重定向的方法是在同一臺伺服器內部發請求,只要涉及到呼叫外部系統,都會有302重定向的。

什麼是302重定向:

請求的資源現在臨時從不同的 uri 響應請求。由於這樣的重定向是臨時的,客戶端應當繼續向原有地址傳送以後的請求。只有在cache-control或expires中進行了指定

的情況下,這個響應才是可快取的。

新的臨時性的 uri 應當在響應的 location 域中返回。除非這是一個 head 請求,否則響應的實體中應當包含指向新的 uri 的超連結及簡短說明。

如果這不是一個 get 或者 head 請求,那麼瀏覽器禁止自動進行重定向,除非得到使用者的確認,因為請求的條件可能因此發生變化。

注意:雖然rfc 1945和rfc 2068規範不允許客戶端在重定向時改變請求的方法,但是很多現存的瀏覽器將302響應視作為303響應,並且使用 get 方式訪問在 location

中規定的 uri,而無視原先請求的方法。狀態碼303和307被新增了進來,用以明確伺服器期待客戶端進行何種反應。

**導航出現了302重定向,請問怎麼取消

3樓:山東文匯軟體

1、302重定向是臨時性定向,一般都是內部測試,或者做短期調整站長自行設定的。

2、如果是自己的**可以隨時取消。

求助python3 302重定向 鎐ookie問題

Python外星人入侵問題求助

你好,我也遇到了同樣的問題。debug可以發現其實你的程式仍然是36個外星人,但是每行外星人的位置重合導致了顯示結果看起來只有一列外星人響應。這是由於每個外星人的初始位置相同。我當初寫的時候理所當然地在def create alien中 該函式目的是生成一組外星人 對函式體中每個alien的位置都是...

求助大佬!執行Python時顯示No module named check

是別人的 吧,他應該有個叫check的py檔案,你找找,要和指令碼放到同一個目錄裡面。求助python大佬!這是一個很經典的錯誤,你注意看下面的輸出。你一定是覺得迴圈了5次,實際上是3次。樓主你這個演算法有邏輯上的bug,不建議用for迴圈的同時在list刪除或新增物件。你可以作用list set ...

python問題,Python問題?

語法錯誤未安裝原庫。 嗄0000大本營 遇到這種情況應該是編碼問題導致的,使用不同的編碼出來的字元都有可能是不同的,先搞清楚這個檔案的編碼再執行吧 a馬玉敏 這個一定要問專業的人員或者專業的老師,這樣才可以解決你一切的疑問。 滿意 幫你執行這個程式時候出現了障礙。請你不要氣餒,也不要慌張。最好的方法...