91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript如何設置cookies

發布時間:2020-11-23 11:09:33 來源:億速云 閱讀:229 作者:小新 欄目:編程語言

這篇文章主要介紹JavaScript如何設置cookies,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

網頁端抓數據免不了要跟JavaScript打交道,尤其是JS代碼有混淆,對cookie做了手腳。找到cookie生成的地方要費一點時間。

這樣一個網頁,用瀏覽器打開很正常。然而用requests下載URL卻得到“521”的狀態碼,返回的內容是一串壓縮混淆的JavaScript代碼。就是下面這個樣子:

JavaScript如何設置cookies

返回的是JavaScript就好說了。肯定是瀏覽器運行這段JavaScript后,再次加載就可以得到真實網頁內容了。

那么問題來了,這段js代碼都做了些什么呢?

我們先觀察一下瀏覽器的加載過程。因為你已經成功打開了這個網頁,瀏覽器已經記住了某些關鍵的cookies,所以你要先把cookies刪除。

如何刪除Chrome瀏覽器記錄的某個網站的cookies呢?

打開Chrome的settings,按這個路徑尋找cookies刪除的地方:Advanced -> Content Settings -> Cookies -> See all cookies and site data 。

然后在右上角的搜索欄搜索 mps.gov 就可以看到這個網站對應的cookies,把它們都刪除即可。

打開瀏覽器的Network,選中“Preserve log”,記住加載的歷史,然后用瀏覽器重新打開這個網址:

http://www.mps.gov.cn/n2253534/n2253535/index.html

可以看到Network記錄的加載過程:

JavaScript如何設置cookies

觀察發現,第一次返回了521,然后停頓片刻(實際上是1.5秒,后面js代碼可以看到)再次加載該網頁,可以得到正確的網頁內容。

對比兩次請求的cookies,可以發現第二次多了些cookies。這些cookies有可能就是521時返回的js寫進去的。那么我們就來研究一下這段js代碼。

首先,我們需要一個js格式化的工具來幫助我們研究這段js代碼。工具很多,我們使用 https://beautifier.io/ 。把代碼copy到beautifier的網頁格式化一下:

JavaScript如何設置cookies

先來理解一下這段代碼,1-16行沒什么特別的。16行要eval()一段js代碼字符串,這個很關鍵,看看它是什么。把 eval 改成 console.log,然后按F12調出Chrome的開發者工具,把全部js代碼copy到 Chrome的Console運行一下:

JavaScript如何設置cookies

這時候,我們可以看到控制臺輸出了一段js的代碼,把這段代碼再copy到beautifier網頁格式化一下:

JavaScript如何設置cookies

第4行可以看到,是給 document.cookie 賦值了,也就是給瀏覽器寫入的一個名為 __jsl_clearance 的cookie。這個cookie的生成跟第4行最后那個 function 有關,看代碼的樣子,又是一段加密算法。

我們可以讀懂這個function的實現用Python實現算法,但實際上這段代碼太難讀懂了。我們可以借助Python的 ExecJS、PyV8這樣的模塊來運行這段js同樣也可以得到cookie的值。

有了cookie的值,我們在Python里面使用requests.Session 就可以來加載這個網頁了。在Python中得到那個cookies并正確加載網頁內容,是對你Python能力的考驗。

以上是“JavaScript如何設置cookies”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普宁市| 嘉义市| 洛浦县| 孝义市| 正镶白旗| 襄汾县| 本溪| 浠水县| 蛟河市| 读书| 公主岭市| 凤山县| 康保县| 福清市| 元谋县| 虹口区| 长宁县| 格尔木市| 太仆寺旗| 长乐市| 柳州市| 兴义市| 宜川县| 兴海县| 锦屏县| 奉新县| 崇义县| 商丘市| 宝清县| 峨山| 丹巴县| 汝州市| 万载县| 曲周县| 五华县| 济阳县| 建水县| 石台县| 昭觉县| 富川| 通河县|