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