爬蟲代理哪家強祝谚?十大付費代理詳細(xì)對比評測出爐宪迟!

前言

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

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

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

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

測評范圍

免費代理

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

付費代理

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


1

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

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

測評目標(biāo)

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

可用率

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

響應(yīng)速度

響應(yīng)速度可以用耗費時間來衡量哈蝇,即計算使用這個代理請求網(wǎng)站一直到得到響應(yīng)所耗費的時間棺妓。時間越短,證明代理的響應(yīng)速度越快炮赦,這里同樣是 500 個樣本怜跑,計算時只對正常可用的代理做統(tǒng)計吠勘,計算耗費時間的平均值性芬。

穩(wěn)定性

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

價格

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

安全性

這的確也是需要考慮的因素挺益,比如一旦不小心把代理提取的 API 泄露出去了,別人就肆意使用我們的 API 提取代理使用乘寒,而一直耗費的是我們的套餐望众。另外一旦別人通過某些手段獲取了我們的代理列表,而這些代理是沒有安全驗證的伞辛,這也會導(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ò)波動、傳輸延遲等一系列的影響贰剥。

主機選取

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


2

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

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

另外在評測時還需要遵循一個原則涵妥,那就是現(xiàn)取現(xiàn)測乖菱,即取一個測一個∑挛現(xiàn)在很多付費代理網(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)之間的時間差即可茵臭,時間計算方法如下所示:

start_time = time.time()

requests.get(test_url, timeout=timeout, proxies=proxies)

end_time = time.time()

used_time = end_time - start_time

這里 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() 方法:

test_url = 'https://www.baidu.com/'

timeout = 60

def test_proxy(proxy):

? ? try:

? ? ? ? proxies = {

? ? ? ? ? ? 'https': 'http://' + proxy

? ? ? ? }

? ? ? ? start_time = time.time()

? ? ? ? requests.get(test_url, timeout=timeout, proxies=proxies)

? ? ? ? end_time = time.time()

? ? ? ? used_time = end_time - start_time

? ? ? ? print('Proxy Valid', 'Used Time:', used_time)

? ? ? ? return True, used_time

? ? except (ProxyError, ConnectTimeout, SSLError, ReadTimeout, ConnectionError):

? ? ? ? print('Proxy Invalid:', proxy)

? ? ? ? return False, None

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

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

max = 500

def main():

? ? print('Testing')

? ? used_time_list = []

? ? valid_count = 0

? ? total_count = 0

? ? while True:

? ? ? ? flag, result = get_page(api_url)

? ? ? ? if flag:

? ? ? ? ? ? proxy = result.strip()

? ? ? ? ? ? if is_proxy(proxy):

? ? ? ? ? ? ? ? total_count += 1

? ? ? ? ? ? ? ? print('Testing proxy', proxy)

? ? ? ? ? ? ? ? test_flag, test_result = test_proxy(proxy=proxy)

? ? ? ? ? ? ? ? if test_flag:

? ? ? ? ? ? ? ? ? ? valid_count += 1

? ? ? ? ? ? ? ? ? ? used_time_list.append(test_result)

? ? ? ? ? ? ? ? stats_result(used_time_list, valid_count, total_count)

? ? ? ? time.sleep(wait)

? ? ? ? if total_count == max:

? ? ? ? ? ? break

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

import numpy as np

def stats_result(used_time_list, valid_count, total_count):

? ? if not used_time_list or not total_count:

? ? ? ? return

? ? used_time_array = np.asarray(used_time_list, np.float32)

? ? print('Total Count:', total_count,

? ? ? ? ? 'Valid Count:', valid_count,

? ? ? ? ? 'Valid Percent: %.2f%%' % (valid_count * 100.0 / total_count),

? ? ? ? ? 'Used Time Mean:', used_time_array.mean(),

? ? ? ? ? 'Used Time Var', used_time_array.var())

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

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


3

注:

表中的響應(yīng)時間方差越大送浊,代表穩(wěn)定性越低梦谜。

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

測評分析

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

可用率

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


4

響應(yīng)速度

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


5

穩(wěn)定性

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


6

價格

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


7
8

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


9

安全性

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

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

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

所以在此歸納如下:


10

調(diào)取頻率

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


11


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



特色功能

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


13

測評綜合

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


14

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

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

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 轉(zhuǎn)自靜覓???爬蟲代理哪家強?十大付費代理詳細(xì)對比評測出爐恬吕!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末签则,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子币呵,更是在濱河造成了極大的恐慌怀愧,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件余赢,死亡現(xiàn)場離奇詭異芯义,居然都是意外死亡,警方通過查閱死者的電腦和手機妻柒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門扛拨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人举塔,你說我怎么就攤上這事绑警∏筇” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵计盒,是天一觀的道長渴频。 經(jīng)常有香客問我,道長北启,這世上最難降的妖魔是什么卜朗? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮咕村,結(jié)果婚禮上场钉,老公的妹妹穿的比我還像新娘。我一直安慰自己懈涛,他們只是感情好逛万,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著批钠,像睡著了一般宇植。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上埋心,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天当纱,我揣著相機與錄音,去河邊找鬼踩窖。 笑死,一個胖子當(dāng)著我的面吹牛晨横,可吹牛的內(nèi)容都是我干的洋腮。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼手形,長吁一口氣:“原來是場噩夢啊……” “哼啥供!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起库糠,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤伙狐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞬欧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贷屎,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年艘虎,在試婚紗的時候發(fā)現(xiàn)自己被綠了唉侄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片籍滴。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡崭庸,死狀恐怖彼城,靈堂內(nèi)的尸體忽然破棺而出斤讥,到底是詐尸還是另有隱情,我是刑警寧澤同眯,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布绽昼,位于F島的核電站,受9級特大地震影響须蜗,放射性物質(zhì)發(fā)生泄漏硅确。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一唠粥、第九天 我趴在偏房一處隱蔽的房頂上張望疏魏。 院中可真熱鬧,春花似錦晤愧、人聲如沸大莫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽只厘。三九已至,卻和暖如春舅巷,著一層夾襖步出監(jiān)牢的瞬間羔味,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工钠右, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赋元,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓飒房,卻偏偏與公主長得像搁凸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子狠毯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理护糖,服務(wù)發(fā)現(xiàn),斷路器嚼松,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 1.簡介: ? Nginx:engine X 嫡良,2002年,開源献酗,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 1,863評論 0 3
  • 就像星空寝受,抬頭仰望,雖然無法照明前路罕偎,卻依舊因你的存在而感知生活的美好羡蛾。——和菜頭《驛站》讀者留言 生活當(dāng)中,總是...
    Easen的卡片寫作人生閱讀 121評論 0 0
  • 原文“孩子最信任的人就是自己的父母痴怨,而當(dāng)父母用某些夸大其詞或是不存在的事物來嚇唬孩子的時候忙干,孩子是當(dāng)真害怕的...
    財務(wù)部王玉倩閱讀 386評論 0 0
  • JavaScript獲取網(wǎng)頁信息總結(jié)JavaScript獲取當(dāng)前頁面URL、title等浪藻,thisHash = d...
    小東門兒閱讀 1,888評論 0 7