動態換ip軟體:手把手教你搭建Cookies池

太陽小諸葛發表於2019-01-19

  很多時候,在抓取沒有登陸的情況下,我們們也能夠訪問一部分網站頁面或請求一類介面,因為畢竟網站本身須要做SEO,不會對所有網站頁面都設定登陸限制。

  可是,不登陸直接抓取會有一類壞處,壞處主要有以下兩點。

  設定了登陸限制的網站頁面無法抓取。如某論壇設定了登陸才可檢視資源,某部落格設定了登陸才可檢視全文等,這些網站頁面都須要登陸賬號才能夠檢視和抓取。

  一類網站頁面和介面雖然能夠直接請求,可是請求一旦頻繁,訪問就容易被限制或者IP直接被封,可是登陸之後就不會出現這樣的問題,因此登陸之後被反爬的可能性更低。

  Cookies池中儲存了許多新浪微博賬號和登陸後的Cookies資訊,並且Cookies池還須要定時檢測每個Cookies的有效性,如果某Cookies無效,那就刪除該Cookies並模擬登陸生成新的Cookies。同時Cookies池還須要一個非常重要的介面,即獲取隨機Cookies的介面,Cookies執行後,我們們只需請求該介面,即可隨機獲得一個Cookies並用其抓取。

  由此可見,Cookies池須要有自動生成Cookies、定時檢測Cookies、提供隨機Cookies等幾大核心功能。

  準備工作

  搭建之前肯定須要一類微博的賬號。須要安裝好Redis資料庫並使其正常執行。須要安裝Python的RedisPy、requests、Selelnium、Flask庫。另外,還須要安裝Chrome瀏覽器並配置好ChromeDriver。

  Cookies池架構

  Cookies的架構和代理池類似,同樣是4個核心模組,如下圖所示。

  

  Cookies池架構的基本模組分為4塊:儲存模組、生成模組、檢測模組、介面模組。每個模組的功能如下。

  儲存模組負責儲存每個賬號的使用者名稱密碼以及每個賬號對應的Cookies資訊,同時還須要提供一類方法來實現方便的存取操作。

  生成模組負責生成新的Cookies。此模組會從儲存模組逐個拿取賬號的使用者名稱和密碼,然後模擬登陸目標網站頁面,判斷登陸成功,就將Cookies返回並交給儲存模組儲存。

  檢測模組須要定時檢測資料庫中的Cookies。在這裡我們們須要設定一個檢測連結,不同的站點檢測連結不同,檢測模組會逐個拿取賬號對應的Cookies去請求連結,如果返回的狀態是有效的,那麼此Cookies沒有失效,否則Cookies失效並移除。接下來等待生成模組重新生成即可。

  介面模組須要用API來提供對外服務的介面。由於可用的Cookies可能有多個,我們們能夠隨機返回Cookies的介面,這樣保證每個Cookies都有可能被取到。Cookies越多,每個Cookies被取到的機率就會越小,從而減少被封號的風險。

  以上設計Cookies池的的基本思路和前面講的代理池有相似之處。接下來我們們設計整體的架構,然後用程式碼實現該Cookies池。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561288/viewspace-2564185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章