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