2021-02-04 分類: 網站建設
一、前言
一般而言,抓取稍微正規一點的網站,都會有反網絡爬蟲的制約。反網絡爬蟲主要有以下幾種方式:
根據UA判斷。這是最低級的判斷,一般反網絡爬蟲不會用這個做唯一判斷,因為反反網絡爬蟲非常容易,直接隨機UA即可解決。
根據單IP頻繁訪問判斷。這個判斷簡單,而且反反網絡爬蟲比較費力,反網絡爬蟲好方案。需采用多IP抓取。
根據Cookie判斷,例如根據會員制賬號密碼登陸,判斷單賬號短時間抓取次數判斷。這個反反網絡爬蟲也很費力。需采用多賬號抓取。
動態頁面加載。這個考驗前端工程師的功底,假如前端寫的好,各種JS判斷,各種邏輯,像百度,淘寶一樣,post登錄很難。較好的方法,但是對于大牛,還是防不勝防。反反網絡爬蟲多采用渲染瀏覽器抓取,效率低下。
采用驗證碼。這里要不是登錄的時候有驗證碼,要不是判斷是網絡爬蟲時,不封IP,而是采用驗證碼驗證,例如鏈家網。驗證碼是反網絡爬蟲性價比較高的方案。反反網絡爬蟲一般接入OCR驗證碼識別平臺或是人工打碼平臺,亦或是利用Tesseract OCR識別,亦或是采用神經網絡訓練識別驗證碼等。
二、概要
今天咱們先主要來講一講,如何應對第2條的反反網絡爬蟲,如何根據多IP抓取。根據多IP網絡爬蟲,又分為以下幾種形式:
根據ADSL撥號換IP服務器。每撥一次就會有一個新IP,較好解決IP單一問題。
假如是局域網,帶路由器的,第一種方法可能不好用。這個時候可以模擬登陸路由器,控制路由器重新撥號,換IP,這其實是一種折中的辦法,曲線救國。
代理IP,利用購買的或是網上抓取的免費代理IP,實現多IP網絡爬蟲。
分布式網絡爬蟲。采用多個服務器,多個IP,多個slave網絡爬蟲同時運行,由master負責調度。效率較高,屬于大型分布式抓取,一般用redis分布式抓取,不表。
最近了解到一種新的加密的代理網絡。Tor匿名網絡,利用這個也能匿名換IP。這個還沒有詳細了解,不表。
三、正文
1. ADSL撥號
我一般是在windows平臺ADSL撥號,其他平臺暫時沒用過。windows平臺撥號,我一般用python的代碼為:
2. 路由器撥號
假如是局域網,帶路由器的。直接調用windows的rasdial命令無法撥號時,這個時候可以模擬登陸路由器,控制路由器重新撥號,換IP,這其實是一種折中的辦法,曲線救國。下面以登錄小米路由器示例:
利用這個方法,就實現了用路由器換IP的目的。該方法的缺陷也是很明顯的。就是不像第一種方法那樣通用。基本上一個路由器就得編一套代碼,屬于定制代碼。
3. 代理IP
代理IP是最常見的一種多IP網絡爬蟲方法。在請求Headers中加入代理IP地址,即可實現代理IP抓取。缺陷是爬取速度和代理IP的速度息息相關。而且好的IP費用較高,免費的速度普遍不高。
附上requests抓取攜帶代理IP和selenium抓取攜帶代理IP的代碼。
requests:
selenium:
四、尾言
本文主要講了反網絡爬蟲的一些概念,常用的方法,反反網絡爬蟲的一些方法,并且主要介紹了多IP網絡爬蟲的實現方式,屬于網絡爬蟲領域基礎內容。掌握了這些基礎內容,以后網絡爬蟲步伐才能邁得堅實。
分享文章:動態秒換IP服務器,讓爬蟲運行更加順利!
瀏覽地址:http://m.newbst.com/news17/99117.html
成都網站建設公司_創新互聯,為您提供虛擬主機、網站策劃、網站改版、服務器托管、App設計、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容