1. 程式人生 > >基於webkit瀏覽器,自動獲取完整cookie的方法 -- python

基於webkit瀏覽器,自動獲取完整cookie的方法 -- python

在進行自動抓取某些比較x的網站,例如知乎,微博時,需要登入,才能進行某些操作。

例如在抓取知乎首頁,使用requests,肯定是不能獲取獲取登入後的頁面的資訊。而使用selenium 中的firefox 進行操作,獲取登入後的頁面,依舊不能將這個頁面上的資訊抓取下來。

登入前
這裡寫圖片描述

登入後
這裡寫圖片描述

一般有如下方法來解決:

1 抓包獲取cookie值

通過在網頁瀏覽器登入網站,然後重新整理網頁,通過檢視原始碼,檢視傳送請求的頭部資訊,查取cookie值,然後在程式中,將cookie賦值給傳送請求的cookie引數中。requests中可以實現這一功能。

這裡寫圖片描述

2 模擬登入

利用模擬瀏覽器的方式登陸,比如ghost.py, selenium等進行操作。程式中,瀏覽器物件獲取使用者名稱框,密碼框,輸入相應的值,然後點選登入,瀏覽器物件的一些屬性就發生變化,這是可以通過瀏覽器物件屬性返回cookie,返回的cookie可以在後面的請求中使用。

但是,這種模擬登入的方法,在遇到需要驗證碼登入的時候會很麻煩。

3 手動登入,返回cookie

跟方法 2 類似,同樣時基於模擬瀏覽器的方法。使用 selenium + firefox。
在程式中,呼叫selenium的firefox物件,使用firefox物件開啟網頁,程式會呼叫本地(或者遠端,自己定義)的firefox瀏覽器,並開啟登入頁面。此時,進行人工在此頁面進行登入操作,即輸入帳號,密碼,驗證碼,點選登入。完成後,程式中的firefox物件的屬性發生變化,此時,返回firefox物件的cookie值,即是我們需要的值。