您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)為python爬蟲獲取登錄cookies的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
之前講到的新聞爬蟲,是基本不受目標(biāo)服務(wù)器限制的爬蟲,技術(shù)上的挑戰(zhàn)主要在抓取任務(wù)的管理、分配,并發(fā)的使用,提高效率等方面。而實際中,不同抓取目標(biāo)的爬蟲會遇到很多阻礙,這個阻礙就是登錄。
曾幾何時,登錄是一件很簡單的事情,一個賬戶及其密碼,POST給服務(wù)器,服務(wù)器驗證通過即可。那是一個美好的樸素年代,服務(wù)器不設(shè)防,用戶不貪婪。然而,時過境遷,人心變了。越來越多的人想要收集數(shù)據(jù),爬蟲也就越來越多;而網(wǎng)站就有了網(wǎng)絡(luò)請求壓力,也有了死守數(shù)據(jù)私心。天下熙熙,皆為利來;天下攘攘,皆為利往?,F(xiàn)在的互聯(lián)網(wǎng),就成了一個利字當(dāng)頭、魔高一尺道高一丈的戰(zhàn)場。
如今,各種網(wǎng)站都設(shè)置了復(fù)雜的登錄這堵高高的墻來阻止爬蟲大量甚至全部獲取網(wǎng)站的數(shù)據(jù)。比如,12306的驗證碼是點選圖片,微博是變形的字母驗證碼,知乎是點選倒立的漢字,嗶哩嗶哩通過拖動滑塊拼圖來驗證。這些變態(tài)的驗證過程都是加入人的交互來防止爬蟲自動登錄,從而阻止爬蟲自動化的大批量抓取。
大家都已經(jīng)知道,HTTP協(xié)議是無狀態(tài)的,用戶登錄的狀態(tài)靠cookies在瀏覽器和服務(wù)器之間來回傳送來記錄。完成登錄后,cookies在一定時間范圍內(nèi)是保持不變的,直接獲得這個cookies給爬蟲用,就可以讓爬蟲有了登錄的狀態(tài),進而進行后面的抓取,當(dāng)然,這個抓取只能持續(xù)到cookies過期之前。
1. 爬蟲登錄的三種層次
完成登錄這個過程,最好是程序自動化的實現(xiàn),那么你寫好程序后就可以一邊兒玩去了;然而好多時候,事情不是那么讓人省心,登錄還需要人工參與一下下??偨Y(jié)下來,實現(xiàn)登錄有以下三個層次:
簡單的POST賬戶密碼就可以實現(xiàn)自動化登錄;
通過程序可以模擬出登錄流程實現(xiàn)自動化登錄;
登錄需要人工(智能)介入,人工智能實現(xiàn)自動化登錄;
第一個層次,使用requests模塊加一兩行代碼就可以實現(xiàn),關(guān)鍵是而今遇到這樣的良心網(wǎng)站是可遇不可求的。
第二個層次,是很有挑戰(zhàn)性的,也是爬蟲界人士力求達到的層次。
第三個層次,是很方便的,臨時抓取定量數(shù)據(jù)的寶典利器,無法是人工輸入一下驗證碼;利用人工智能識別驗證碼,同樣也可以達到完全無人介入的地步,但是這已經(jīng)不是爬蟲的范疇了,而要實現(xiàn)人工智能破解各種變態(tài)的驗證碼所耗費的資源也是難以想象的。
由此看來,登錄狀態(tài)cookies的獲取,主要還是靠模擬登錄流程或人工輸入驗證碼的方式實現(xiàn)。
2. 爬蟲登錄分析的三類工具
模擬登錄,首先就要分析出目標(biāo)網(wǎng)站的登錄流程才能進行程序模擬。而要分析這個過程,就需要工具的輔助,這樣的工具有:
Chrome瀏覽器開發(fā)者工具(F12)
Charles、Fiddler Web調(diào)試代理(Web Debugging Proxy)工具
Wireshark抓包工具
Chrome的F12,我們前面已經(jīng)介紹過了,它可以很好的幫助我們分析了解網(wǎng)站的加載過程,但相對于專業(yè)工具Charles等又稍顯不足;Wireshark是專業(yè)的抓包工具,它不僅僅可以分析http協(xié)議,TCP、UDP等照樣不在話下,但對我們分析登錄流程又過于復(fù)雜。所以我們還是選擇Charles、Fiddler這樣的專門的Web(http)調(diào)試代理。
關(guān)于為python爬蟲獲取登錄cookies的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。