中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中付費代理詳的對比

發布時間:2020-08-05 15:04:15 來源:億速云 閱讀:218 作者:小新 欄目:編程語言

小編給大家分享一下Python中付費代理詳的對比,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

前言

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

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

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

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

測評范圍

免費代理

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

付費代理

付費代理我選取了站大爺、芝麻 HTTP 代理、太陽 HTTP 代理、訊代理、快代理、蘑菇代理、阿布云代理、全網代理、云代理、大象代理、多貝云進行了對比評測,購買了他們的各個不同級別的套餐使用同樣的網絡環境進行了測評,詳情如下:

Python中付費代理詳的對比

注:其中蘑菇代理、太陽 HTTP 代理、芝麻 HTTP 代理的默認版表示此網站只有這一種代理,不同套餐僅是時長區別,代理質量沒有差別。

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

測評目標

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

可用率

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

響應速度

響應速度可以用耗費時間來衡量,即計算使用這個代理請求網站一直到得到響應所耗費的時間。時間越短,證明代理的響應速度越快,這里同樣是 500 個樣本,計算時只對正常可用的代理做統計,計算耗費時間的平均值。

穩定性

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

價格

價格,這個當然是需要考慮的內容,如果一個代理不論是響應速度還是穩定性都特別不錯,但是價格非常非常高,這也是不可接受的。

安全性

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

使用頻率

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

測評標準

要做標準的測評,那就必須在標準的測評環境下進行,且盡可能排除一些雜項的干擾,如網絡波動、傳輸延遲等一系列的影響。

主機選取

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

Python中付費代理詳的對比

這樣我們就可以保證一個標準統一的測試環境了。

現取現測

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

時間計算

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

start_time = time.time()
requests.get(test_url, timeout=timeout, proxies=proxies)
end_time = time.time()
used_time = end_time - start_time

這里 used_time 就是使用代理請求的耗時,這樣測試的就僅僅是發起請求到得到響應的時間。

測試鏈接

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

超時限制

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

測試數量

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

測評過程

嗯,測評過程這邊主要說一下測評的代碼邏輯,首先測的時候是取一個測一個的,所以這里定義了一個 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

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

在主程序里,就是獲取 API 然后統計結果了,代碼如下:

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() 方法判斷了獲取的是不是符合有效的代理規則,即判斷它是不是 IP 加端口的形式,這樣可以排除 API 返回一些錯誤信息的干擾。另外這里設置了 total_count 和 valid_count 變量,只有符合代理規則的代理參與了測試,這樣才算一次有效測試,total_count 加一,如果測試可用,那么 valid_count 加一并記錄耗費時間。最后調用了 stats_results 方法進行了統計:

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 來統計了耗費時間的均值和方差,分別反映代理的響應速度和穩定性。

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

測評結果

經過測評,初步得到如下統計結果:

Python中付費代理詳的對比

注:

·表中的響應時間方差越大,代表穩定性越低。

·阿布云代理經典版方差較小是因為它是長時間鎖定了同一個 IP,因此極其穩定,但每秒最大請求默認 5 次。

·多貝云代理套餐一二方差較小是因為它是長時間鎖定了同一個 IP,因此極其穩定,但每秒最大請求默認 20 次。

測評分析

下面我們將從各個方面分析一下各個套餐的優劣。

可用率

通過可用率統計,我們可以發現可用率較高的代理套餐有:

Python中付費代理詳的對比

響應速度

通過平均響應速度判別,我們可以發現響應速度較快的代理套餐有:

Python中付費代理詳的對比

穩定性

通過平均響應速度方差分析,我們可以發現穩定性較高的代理套餐有:

Python中付費代理詳的對比

價格

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

Python中付費代理詳的對比

Python中付費代理詳的對比

按照包月的價格,我們可以統一對比如下:

Python中付費代理詳的對比

安全性

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

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

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

所以在此歸納如下:

Python中付費代理詳的對比

調取頻率

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

Python中付費代理詳的對比

在此可以簡單總結如下:

Python中付費代理詳的對比

特色功能

除了常規的測試之外,我這邊還選取了某些套餐的與眾不同之處進行說明,這些特點有的算是缺點,有的算是優點,現列舉如下:

Python中付費代理詳的對比

測評綜合

分項了解了各個代理套餐的可用率、響應速度、穩定性、性價比、安全性等內容之后,最后做一下總結:

Python中付費代理詳的對比

Python中付費代理詳的對比

所以在綜合來看比較推薦的有:芝麻代理、訊代理、阿布云、多貝云代理,詳細的對比結果可以參照表格。

看完了這篇文章,相信你對Python中付費代理詳的對比有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗水县| 开平市| 治县。| 泸定县| 柳州市| 禹州市| 开化县| 迁西县| 若尔盖县| 荆州市| 沁水县| 湟源县| 赫章县| 阿城市| 来宾市| 翼城县| 鄂托克前旗| 轮台县| 台南县| 互助| 临高县| 嘉兴市| 张家港市| 长垣县| 禹城市| 富锦市| 黑龙江省| 启东市| 浙江省| 买车| 行唐县| 会理县| 邛崃市| 宜黄县| 巴彦淖尔市| 哈巴河县| 巴塘县| 朔州市| 泰兴市| 扶绥县| 永宁县|