1.為什麼要測試HTTP代理?
在當今網際網路大資料時代,資料採集日益發展,HTTP代理在其中扮演著重要的角色。和其他產品一樣,在使用HTTP代理的時候我們也會遇到諸如:穩定性、匿名程度、響應速度、IP池可用率等問題,如何對HTTP代理進行測試,才能滿足我們的需求?
目前市面上很多HTTP代理都有提供試用,購買之前大部分人都會試用,但是我們很經常看到,很多uu在互動社群評判HTTP代理服務提供商提供的產品購買後使用效果很差。
我們在很多平臺,都能看到快代理的鋪的廣,經查也是一家老牌HTTP代理廠商,風評似乎不錯,所以這次我們也一起測試看看吧!
2.測試HTTP代理的注意事項
在測試之前,我們需要注意的是:
- 測試環境應該符合實際應用環境
- 測試頻率要符合我們日常做資料採集的使用習慣
- 測試IP的節點範圍要廣
- 不同應用場景下的不同需求,需要選擇適合的測試方法和指標
3. HTTP代理測試專案
無論測試哪家HTTP代理,逃不開這幾項:可用率、響應速度、穩定性、匿名度、安全性測試,通常我們會結合多種測試方法和工具,以此來全面評估這家HTTP代理的質量,衡量是否值得購買。
ps:市面上的HTTP代理服務提供商有很多,可以綜合對比後,挑選自己合意的幾家來測試。
- 響應速度
透過測量HTTP代理與目標伺服器之間的響應時間,評估HTTP代理的連線速度。在測試的時候,可以統計一下所有的時間,然後測算平均響應時間。如果這個HTTP代理能夠更快地傳輸請求和接收響應,證明這個HTTP代理速度越快。
- 可用率
一個可用性高的HTTP代理意味著它在大部分時間內都能正常工作,並且能夠順利傳遞請求和響應。我這設定成30秒,意思就是使用這個HTTP代理訪問網站超過30秒還是得不到響應,就預設為這個HTTP代理無效了。
假設我們一次性提取1000個HTTP代理,如果這1000個HTTP代理在我們使用的時候,有50個超過30秒得到不到響應/無法傳遞請求,則認為這個可用率為(1000-50)➗1000=95%。
- 穩定性
在資料抓取的時候,我們會用到大量的HTTP代理,一個穩定的HTTP代理能夠長時間保持連線,並且不會頻繁斷開或出現連線錯誤,才能有效助力我們資料抓取。
- 頻寬
對於大部分的使用者來說,HTTP代理的頻寬高低也很影響使用體驗,而影響HTTP代理的頻寬高低的因素蠻多的,如:HTTP代理的使用人數、廠商對HTTP代理頻寬的限制、代理伺服器的效能等。
4.測評環境
良好的測試環境,需要在穩定的網路環境下測試,以及,至少跑得動的裝置,手動加狗頭。
這次測評,我是使用 python 30個執行緒池進行多執行緒測試,其中電腦配置如下:
5.測試連結
我們熟悉的度娘
6.測試數量
提取1000個HTTP代理進行測試。
7.測試過程
這次,我把響應速度和可用率結合在一起,測試快代理對百度站點的連通性和請求延遲。
- 有效性+延遲部分程式碼如下:
# 測試代理ip有效性核心程式碼 def test_proxy_usability(proxy_ip,thread_id): target_url = ' headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } proxies = { 'http': f'http://{proxy_ip}', 'https': f'http://{proxy_ip}' } try: status = "失敗" resp = session.get(target_url,headers=headers, proxies=proxies, timeout=5) if resp.status_code == 200: status = "成功" else: pass except Exception as e: pass
狀態碼‘200’就是訪問成功,證明這個HTTP代理是有效的。
測試執行如下:
- 穩定性:利用平均響應速度方差分析,我們可以發現穩定性如何較高。
計算公式如下:
S^2=1/n[(x1-x)^2+(x2-x)^2+……+(xn-x)^2]
簡單來說,excel的裡面的方差計算公式VAR()可以幫助我們秒計算。善用excel~
- 頻寬測試部分程式碼如下:
#測試頻寬核心程式碼 def test_proxy_bandwidth(auth_key,ip,proxies,thread_id,source_url): res = { "thread_id":thread_id, "ip":ip.replace('\n',''), "target_url":source_url, } file_size = 10 * 1024 * 1024 # 10 MB start_time = time.time() downloaded_size = 0 try: response = requests.get(source_url, proxies=proxies, stream=True, timeout=30) dirname = f"./{auth_key}_{ip}" with open(f'{dirname}', 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) downloaded_size += len(chunk) f.flush() if downloaded_size >= file_size: break elapsed_time = time.time() - start_time download_speed = downloaded_size / elapsed_time / 1024 # KB/s except Exception as e: elapsed_time = time.time() - start_time download_speed = downloaded_size / elapsed_time / 1024 # MB/s
這裡是下載10M檔案,記錄測試網速。
測試執行如下:
8.快代理HTTP代理測試結果
9.特點
- 快代理釋出過公告,頁面的價格即最終價格,對不會砍價的人友好了;
- 產品種類還算齊全。
10.總結
來總結一下:
就本次測試結果而言,快代理的綜合表現也還可以,不過他們在節點和日去重方面會比我們之前測試過的青果網路略遜色一點。
PS:青果網路覆蓋的城市節點有200+個,現在還開通了海外HTTP代理,節點應該有更多。
在日去重方面,青果網路分為普通池子日去重60W,企業池子220+W。
說回快代理。
本次,還發現快代理有一個弊端,是和我之前使用很多HTTP代理服務商都有的弊端:IP池子在剛開始做資料採集的時候,成功率確實可以,IP可用率還蠻高,但是隨著時間的推移,IP可用率下降了,成功率降得非常厲害,此時,他們是沒辦法給我有效的解決方案的。這時候,我要麼再挑一家HTTP代理服務商來,要麼就先暫停這個專案。
甲方催促and領導的奪命連環call好幾次讓我差點崩。
這裡不得不提,同樣的情況,我在使用青果網路的時候也遇到過,但是青果網路能為我迅速做出調成,讓我的IP可用率提升上去,成功率也能跟著上,這點非常難得。
他們家的各項數值:
我們從他們測試後得出的高可用率、高穩定性、高匿名度,都可以說青果網路HTTP代理的產品質量更優質。
縱觀青果網路HTTP代理產品,我們能夠發現,他們的產品品類豐富,HTTP代理的使用場景在這裡都能找到對應的產品,描述清晰,對i人非常友好,如果是企業代表想知道更多,還有客服1v1為你定製方案,句句有回應,e人的天堂。
他們對個人開發者使用者和企業使用者專門設定了不同的池子,我司此前是以企業代表身份使用的企業池,用來做資料採整合功率非常高,可以說是目前我們使用過成功率最高,價格又十分美麗的HTTP代理了。
而本次我個人使用的是普通池,測試後效果也很明顯:各方面都表現得非常優秀!
聽著好像青果網路似乎沒有缺點?
實際上有的,他們海外HTTP代理,在國內無法使用。但仔細一想,出於合規考慮,好像也不是他們的問題,總的來說,會更推薦青果網路。
希望這篇測試文章,能夠幫到那些在觀望HTTP代理哪家強的人。