本文相關(guān)鏈接、代碼等均可通過【閱讀原文】崔慶才的博客鏈接獲得。前言

隨著大數(shù)據(jù)時代的到來,爬蟲已經(jīng)成了獲取數(shù)據(jù)必不可少的方式,做過爬蟲的想必都深有體會,爬取的時候莫名其妙 IP 就被網(wǎng)站封掉了,畢竟各大網(wǎng)站也不想自己的數(shù)據(jù)被輕易地爬走。

對于爬蟲來說,為了解決封禁 IP 的問題,一個有效的方式就是使用代理,使用代理之后可以讓爬蟲偽裝自己的真實 IP,如果使用大量的隨機(jī)的代理進(jìn)行爬取,那么網(wǎng)站就不知道是我們的爬蟲一直在爬取了,這樣就有效地解決了反爬的問題。

那么問題來了,使用什么代理好呢?這里指的代理一般是 HTTP 代理,主要用于數(shù)據(jù)爬取。現(xiàn)在打開搜索引擎一搜 HTTP 代理,免費(fèi)的、付費(fèi)的太多太多品牌,我們該如何選擇呢?看完這一篇文章,想必你心中就有了答案。

對于免費(fèi)代理,其實想都不用想了,可用率能超過 10% 就已經(jīng)是謝天謝地了。真正靠譜的代理還是需要花錢買的,那這么多家到底哪家可用率高?哪家響應(yīng)速度快?哪家比較穩(wěn)定?哪家性價比比較高?為此,我對市面上比較流行的多家付費(fèi)代理針對可用率、爬取速度、爬取穩(wěn)定性、價格、安全性、請求限制等做了詳細(xì)的評測,讓我們來一起看一下到底哪家更強(qiáng)!

測評范圍免費(fèi)代理

在這里我主要測試的是付費(fèi)代理,免費(fèi)代理可用率太低,幾乎不會超過 10%,但為了作為對比,我選取了西刺免費(fèi)代理進(jìn)行了測試。

付費(fèi)代理

付費(fèi)代理我選取了站大爺、芝麻 HTTP 代理、太陽 HTTP 代理、訊代理、快代理、蘑菇代理、阿布云代理、全網(wǎng)代理、云代理、大象代理進(jìn)行了對比評測,購買了他們的各個不同級別的套餐使用同樣的網(wǎng)絡(luò)環(huán)境進(jìn)行了測評,詳情如下:

代理商家 套餐類型 官方網(wǎng)站 芝麻 HTTP 代理 默認(rèn)版 http://h.zhimaruanjian.com 阿布云代理 專業(yè)版 https://www.abuyun.com 動態(tài)版 經(jīng)典版 大象代理 個人版 http://www.daxiangdaili.com 專業(yè)版 企業(yè)版 全網(wǎng)代理 普通版 http://www.goubanjia.com 動態(tài)版 快代理 VIP 套餐 https://www.kuaidaili.com 蘑菇代理 默認(rèn)版 http://www.mogumiao.com 太陽 HTTP 代理 默認(rèn)版 http://http.taiyangruanjian.com 訊代理 優(yōu)質(zhì)代理 http://www.xdaili.cn 混播代理 獨享代理 云代理 VIP 套餐 http://www.ip3366.net 站大爺代理 普通代理 http://ip.zdaye.com 短效優(yōu)質(zhì)代理

注:其中蘑菇代理、太陽 HTTP 代理、芝麻 HTTP 代理的默認(rèn)版表示此網(wǎng)站只有這一種代理,不同套餐僅是時長區(qū)別,代理質(zhì)量沒有差別。

嗯,我把上面的套餐全部買了一遍,以供下面的評測使用。

測評目標(biāo)

本次測評主要分析代理的可用率、響應(yīng)速度、穩(wěn)定性、價格、安全性、使用頻率等因素,下面我們來一一進(jìn)行說明。

可用率

可用率就是提取的這些代理中可以正常使用的比率。假如我們無法使用這個代理請求某個網(wǎng)站或者訪問超時,那么就代表這個代理不可用,在這里我的測試樣本大小為 500,即提取 500 個代理,看看里面可用的比率多少。

響應(yīng)速度

響應(yīng)速度可以用耗費(fèi)時間來衡量,即計算使用這個代理請求網(wǎng)站一直到得到響應(yīng)所耗費(fèi)的時間。時間越短,證明代理的響應(yīng)速度越快,這里同樣是 500 個樣本,計算時只對正??捎玫拇碜鼋y(tǒng)計,計算耗費(fèi)時間的平均值。

穩(wěn)定性

由于爬取時我們需要使用大量代理,如果一個代理響應(yīng)速度特別快,很快就能得到響應(yīng),而下一次請求使用的代理響應(yīng)速度特別慢,等了三十秒才得到響應(yīng),那勢必會影響爬取效率,所以我們需要看下商家提供的這些代理穩(wěn)定性怎樣,總不能這一個特別快,下一個又慢得不行。所以這里我們需要統(tǒng)計一下耗費(fèi)時間的方差,方差越大,證明穩(wěn)定性越差。

價格

價格,這個當(dāng)然是需要考慮的內(nèi)容,如果一個代理不論是響應(yīng)速度還是穩(wěn)定性都特別不錯,但是價格非常非常高,這也是不可接受的。

安全性

這的確也是需要考慮的因素,比如一旦不小心把代理提取的 API 泄露出去了,別人就肆意使用我們的 API 提取代理使用,而一直耗費(fèi)的是我們的套餐。另外一旦別人通過某些手段獲取了我們的代理列表,而這些代理是沒有安全驗證的,這也會導(dǎo)致別人偷偷使用我們的代理。在生產(chǎn)環(huán)境上,這方面尤其需要注意。

使用頻率

有些代理套餐在 API 調(diào)用提取代理時有頻率限制,有的代理套餐則會限制請求頻率,這些因素都會或多或少影響爬蟲的效率,這部分因素我們也需要考慮進(jìn)來。

測評標(biāo)準(zhǔn)

要做標(biāo)準(zhǔn)的測評,那就必須在標(biāo)準(zhǔn)的測評環(huán)境下進(jìn)行,且盡可能排除一些雜項的干擾,如網(wǎng)絡(luò)波動、傳輸延遲等一系列的影響。

主機(jī)選取

由于我的個人筆記本是使用 WiFi 上網(wǎng)的,所以可能會有網(wǎng)絡(luò)波動,而且實際帶寬其實并不太好把控,因此它并不適合來做標(biāo)準(zhǔn)評測使用。評測需要在一個網(wǎng)絡(luò)穩(wěn)定的條件下進(jìn)行,而且多個代理的評測環(huán)境必須相同,在此我選擇了一臺騰訊云主機(jī)作為測試,主機(jī)配置如下:

參數(shù)名 參數(shù)值 操作系統(tǒng) Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-53-generic x86_64) 帶寬 5 Mbps 核心數(shù) 2 內(nèi)存 4GB Python 版本 3.5.2

這樣我們就可以保證一個標(biāo)準(zhǔn)統(tǒng)一的測試環(huán)境了。

現(xiàn)取現(xiàn)測

另外在評測時還需要遵循一個原則,那就是現(xiàn)取現(xiàn)測,即取一個測一個?,F(xiàn)在很多付費(fèi)代理網(wǎng)站都提供了 API 接口,我們可以一次性提取多個代理,但是這樣會導(dǎo)致一個問題,每個代理在提取出來的時候,商家是會盡量保證它的可用性的,但過一段時間,這個代理可能就不好用了,所以假如我們一次性提取出來了 100 個代理,但是這 100 個代理并沒有同時參與測試,后面的代理就會經(jīng)歷一個等待期,過一段時間再測這些代理的話,肯定會影響后半部分代理的有效性,所以這里我們將提取的數(shù)量統(tǒng)一設(shè)置成 1,即請求一次接口獲取一個代理,然后立即進(jìn)行測試,這樣可以保證測試的公平性,排除了不同代理有效期的干擾。

時間計算

由于我們有一項是測試代理的響應(yīng)速度,所以我們需要計算程序請求之前和得到響應(yīng)之后的時間差,這里我們使用的測試 Python 庫是 requests,所以我們就計算發(fā)起請求和得到響應(yīng)之間的時間差即可,時間計算方法如下所示:

這里 used_time 就是使用代理請求的耗時,這樣測試的就僅僅是發(fā)起請求到得到響應(yīng)的時間。

測試鏈接

測試時我們也需要使用一個穩(wěn)定的且沒有反爬蟲的鏈接,這樣可以排除服務(wù)器的干擾,這里我們使用百度來作為測試目標(biāo)。

超時限制

在測試時免不了的會遇到代理請求超時的問題,所以這里我們也需要統(tǒng)一一個超時時間,這里設(shè)置為 60 秒,如果使用代理請求百度,60 秒還沒有得到響應(yīng),那就視為該代理無效。

測試數(shù)量

要做測評,那么樣本不能太小,如只有十幾次測試是不能輕易下結(jié)論的,這里我選取了一個適中的測評數(shù)量 500,即每個套餐獲取 500 個代理進(jìn)行測試。

測評過程

嗯,測評過程這邊主要說一下測評的代碼邏輯,首先測的時候是取一個測一個的,所以這里定義了一個 test_proxy() 方法:

這里需要傳入一個參數(shù) proxy,代表一個代理,即 IP 加端口組成的代理,然后這里使用了 requests 的 proxies 參數(shù)傳遞給 get() 方法。對于代理無效的檢測,這里判斷了ProxyError, ConnectTimeout, SSLError, ReadTimeout, Connecti 這幾種異常,如果發(fā)生了這些異常統(tǒng)統(tǒng)視為代理無效,返回錯誤。如果在 timeout 60 秒內(nèi)得到了響應(yīng),那么就計算其耗費(fèi)時間并返回。

在主程序里,就是獲取 API 然后統(tǒng)計結(jié)果了,代碼如下:

這里加了一些判斷,如 is_proxy() 方法判斷了獲取的是不是符合有效的代理規(guī)則,即判斷它是不是 IP 加端口的形式,這樣可以排除 API 返回一些錯誤信息的干擾。另外這里設(shè)置了 total_count 和 valid_count 變量,只有符合代理規(guī)則的代理參與了測試,這樣才算一次有效測試,total_count 加一,如果測試可用,那么 valid_count 加一并記錄耗費(fèi)時間。最后調(diào)用了 stats_results 方法進(jìn)行了統(tǒng)計:

這里使用了 Numpy 來統(tǒng)計了耗費(fèi)時間的均值和方差,分別反映代理的響應(yīng)速度和穩(wěn)定性。

嗯,就這樣,利用這個方法我對各個不同的代理套餐逐一進(jìn)行了測試。

測評結(jié)果

經(jīng)過測評,初步得到如下統(tǒng)計結(jié)果:

注:

表中的響應(yīng)時間方差越大,代表穩(wěn)定性越低。 阿布云代理經(jīng)典版方差較小是因為它是長時間鎖定了同一個 IP,因此極其穩(wěn)定,但每秒最大請求默認(rèn) 5 次。

下面我們將從各個方面分析一下各個套餐的優(yōu)劣。

可用率

通過可用率統(tǒng)計,我們可以發(fā)現(xiàn)可用率較高的代理套餐有:

響應(yīng)速度

通過平均響應(yīng)速度判別,我們可以發(fā)現(xiàn)響應(yīng)速度較快的代理套餐有:

穩(wěn)定性

通過平均響應(yīng)速度方差分析,我們可以發(fā)現(xiàn)穩(wěn)定性較高的代理套餐有:

價格

我們可以先看一下各個套餐的價格:

按照包月的價格,我們可以統(tǒng)一對比如下:

安全性

對于安全性,此處主要考慮提取 API 是否有訪問驗證,使用代理時是否有訪問驗證,即可以通過設(shè)置白名單來控制哪些可以使用。

其中只有芝麻 HTTP 代理、太陽 HTTP 代理默認(rèn)使用了白名單限制,即只有將使用 IP 添加到白名單才可以使用,可以有效控制使用權(quán)限。

另外阿布云代理提供了隧道代理驗證,只有成功配置了用戶名和密碼才可以正常使用。

所以在此歸納如下:

調(diào)取頻率

不同的接口具有不同的 API 調(diào)用頻率限制,歸納如下:

在此可以簡單總結(jié)如下:

特色功能

除了常規(guī)的測試之外,我這邊還選取了某些套餐的與眾不同之處進(jìn)行說明,這些特點有的算是缺點,有的算是優(yōu)點,現(xiàn)列舉如下:

測評綜合

分項了解了各個代理套餐的可用率、響應(yīng)速度、穩(wěn)定性、性價比、安全性等內(nèi)容之后,最后做一下總結(jié):

所以綜合來看,比較推薦的有:芝麻代理、訊代理、阿布云代理三家,詳細(xì)的對比結(jié)果可以參照表格。

以上便是各家代理的詳細(xì)對比測評情況,希望此文能夠在大家選購代理的時候有所幫助。

圖書推薦

如果你喜歡這篇文章,節(jié)后春暖花開的 3 月預(yù)售的爬蟲大書想必是你絕對不想錯過的。先默默告訴你,要學(xué)爬蟲,除了《Python 網(wǎng)絡(luò)數(shù)據(jù)采集》,記得等下面這本書哦!崔慶才(網(wǎng)名靜覓)傾力打造的《Python 3 網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)》3 月下旬即可預(yù)訂——現(xiàn)在一起開啟期待好書上架模式吧!

作者:崔慶才 定價:99

預(yù)售時間:2018 年 3 月

本書介紹了如何利用 Python 3 開發(fā)網(wǎng)絡(luò)爬蟲,書中首先詳細(xì)介紹了環(huán)境配置過程和爬蟲基礎(chǔ)知識,然后討論了 urllib、requests 等請求庫和 Beautiful Soup、XPath、pyquery 等解析庫以及文本和各類數(shù)據(jù)庫的存儲方法,接著通過多個案例介紹了分析 Ajax 進(jìn)行數(shù)據(jù)爬取,Selenium 和 Splash 進(jìn)行動態(tài)網(wǎng)站爬取的過程,接著介紹了爬蟲的一些技巧,如使用代理爬取和維護(hù)動態(tài)代理池的方法,ADSL 撥號代理的使用,圖形、極驗、點觸、宮格等各類驗證碼的破解方法,模擬登錄網(wǎng)站爬取的方法及 Cookies 池的維護(hù)。

此外,本書還結(jié)合移動互聯(lián)網(wǎng)的特點探討了使用 Charles、mitmdump、Appium 等工具實現(xiàn) App 爬取的方法,緊接著介紹了 pyspider 框架、Scrapy 框架的使用和分布式爬蟲的知識,最后介紹了 Bloom Filter 效率優(yōu)化、Docker 和 Scrapyd 爬蟲部署、Gerapy 爬蟲管理等方面的知識。

崔慶才北京航空航天大學(xué)碩士,北京釘趣網(wǎng)絡(luò)公司技術(shù)總監(jiān),個人博客 cuiqingcai.com,其上爬蟲文章瀏覽量總計已過百萬。

大咖推薦

在互聯(lián)網(wǎng)軟件開發(fā)工程師的分類中,爬蟲工程師是非常重要的。爬蟲工作往往是一個公司核心業(yè)務(wù)開展的基礎(chǔ),數(shù)據(jù)抓取下來,才有后續(xù)的加工處理和最終展現(xiàn)。數(shù)據(jù)的抓取規(guī)模、穩(wěn)定性、實時性、準(zhǔn)確性就顯得非常重要。早期的互聯(lián)網(wǎng)充分開放互聯(lián),數(shù)據(jù)獲取的難度很小。隨著各大公司對數(shù)據(jù)資產(chǎn)日益看重,反爬水平也在不斷提高,各種新技術(shù)不斷給爬蟲軟件提出新的課題。本書作者對爬蟲的各個領(lǐng)域都有深刻研究,書中探討了關(guān)于Ajax數(shù)據(jù)的抓取、動態(tài)渲染頁面的抓取、驗證碼識別、模擬登錄等高級話題,同時也結(jié)合移動互聯(lián)網(wǎng)的特點探討了App的抓取等,更重要的是提供了大量源碼,可以幫助讀者更好理解。強(qiáng)烈推薦給各位技術(shù)愛好者閱讀。

——梁斌,八友科技總經(jīng)理

數(shù)據(jù)既是當(dāng)今大數(shù)據(jù)分析的前提,也是各種人工智能應(yīng)用場景的基礎(chǔ)。得數(shù)據(jù)者得天下,會爬蟲者走遍天下也不怕! 一冊在手,讓小白到老司機(jī)都能有所收獲!

——李舟軍,北京航空航天大學(xué)教授,博士生導(dǎo)師

本書從爬蟲入門基礎(chǔ)到分布式抓取,詳細(xì)介紹了爬蟲技術(shù)的各個要點,并針對不同的場景提出了對應(yīng)的解決方案。另外,本書通過大量的實例來幫助讀者更好地學(xué)習(xí)爬蟲技術(shù),通俗易懂,干貨滿滿,強(qiáng)烈推薦給大家!

——宋睿華,微軟小冰首席科學(xué)家

有人說中國互聯(lián)網(wǎng)的帶寬全給各種爬蟲占據(jù)了,這說明網(wǎng)絡(luò)爬蟲的重要性以及中國互聯(lián)網(wǎng)數(shù)據(jù)封閉壟斷的現(xiàn)狀。爬是一種能力,爬是為了不爬。

——施水才,北京拓爾思信息技術(shù)股份有限公司總裁

崔慶才

靜覓博客博主

隱形字

進(jìn)擊的Coder

?【閱讀原文】查看作者博客

1.《爬蟲代理哪家強(qiáng)?十大付費(fèi)代理詳細(xì)對比評測出爐!》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《爬蟲代理哪家強(qiáng)?十大付費(fèi)代理詳細(xì)對比評測出爐!》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/jiaoyu/18643.html