哪些網(wǎng)站可以找到做海報(bào)的素材網(wǎng)絡(luò)營(yíng)銷與直播電商是干什么的
付費(fèi)代理的使用
相對(duì)免費(fèi)代理來說,付費(fèi)代理的穩(wěn)定性更高。本節(jié)將介紹爬蟲付費(fèi)代理的相關(guān)使用過程。
1. 付費(fèi)代理分類
付費(fèi)代理分為兩類:
-
一類提供接口獲取海量代理,按天或者按量收費(fèi),如訊代理。
-
一類搭建了代理隧道,直接設(shè)置固定域名代理,如阿布云代理。
本節(jié)分別以兩家代表性的代理網(wǎng)站為例,講解這兩類代理的使用方法。
2. 訊代理
訊代理的代理效率較高,官網(wǎng)為 http://www.xdaili.cn/,如圖。
訊代理上可供選購(gòu)的代理有多種類別,包括如下幾種(參考官網(wǎng)介紹)。
-
優(yōu)質(zhì)代理: 適合對(duì)代理 IP 需求量非常大,但能接受代理有效時(shí)長(zhǎng)較短(10~30 分鐘),小部分不穩(wěn)定的客戶
-
獨(dú)享動(dòng)態(tài): 適合對(duì)代理 IP 穩(wěn)定性要求非常高,且可以自主控制的客戶,支持地區(qū)篩選。
-
獨(dú)享秒切: 適合對(duì)代理 IP 穩(wěn)定性要求非常高,且可以自主控制的客戶,快速獲取 IP,地區(qū)隨機(jī)分配
-
動(dòng)態(tài)混撥: 適合對(duì)代理 IP 需求量大,代理 IP 使用時(shí)效短(3 分鐘),切換快的客戶
-
優(yōu)質(zhì)定制: 如果優(yōu)質(zhì)代理的套餐不能滿足您的需求,請(qǐng)使用定制服務(wù)
一般選擇第一類別優(yōu)質(zhì)代理即可,這種代理的量比較大,但是其穩(wěn)定性不高,一些代理不可用。所以這種代理的使用就需要借助于上一節(jié)所說的代理池,自己再做一次篩選,以確保代理可用。
讀者可以購(gòu)買一天時(shí)長(zhǎng)來試試效果。購(gòu)買之后,訊代理會(huì)提供一個(gè) API 來提取代理。
比如在這里我的提取 API 為:http://www.xdaili.cn/ipagent/greatRecharge/getGreatIp?spiderId=da289b78fec24f19b392e04106253f2a&orderno=YZ20177140586mTTnd7&returnType=2&count=20,可能已過期,在此僅做演示。
在這里指定了提取數(shù)量為 20,提取格式為 JSON,直接訪問鏈接即可提取代理。
接下來我們要做的就是解析這個(gè) JSON,然后將其放入代理池中。
如果信賴訊代理的話,我們也可以不做代理池篩選,直接使用代理。不過我個(gè)人還是推薦使用代理池篩選,以提高代理可用概率。
根據(jù)上一節(jié)代理池的寫法,我們只需要在 Crawler 中再加入一個(gè) crawl 開頭的方法即可。方法實(shí)現(xiàn)如下所示:
def crawl_xdaili(self):"""獲取訊代理:return: 代理"""url = 'http://www.xdaili.cn/ipagent/greatRecharge/getGreatIp?spiderId=da289b78fec24f19b392e04106253f2a&orderno=YZ20177140586mTTnd7&returnType=2&count=20'html = get_page(url)if html:result = json.loads(html)proxies = result.get('RESULT')for proxy in proxies:yield proxy.get('ip') + ':' + proxy.get('port')
這樣我們就在代理池中接入了訊代理。獲取訊代理的結(jié)果之后,解析 JSON,返回代理即可。
代理池運(yùn)行之后就會(huì)抓取和檢測(cè)該接口返回的代理,如果代理可用,那么分?jǐn)?shù)就會(huì)被設(shè)為 100,通過代理池接口即可獲取到這些可用代理。
3. 阿布云代理
阿布云代理提供了代理隧道,代理速度快且非常穩(wěn)定,其官網(wǎng)為 阿布云 - 為大數(shù)據(jù)賦能?。
阿布云代理主要分為兩種:專業(yè)版和動(dòng)態(tài)版,另外還有定制版(參考官網(wǎng)介紹)。
-
專業(yè)版,多個(gè)請(qǐng)求鎖定一個(gè)代理 IP,海量 IP 資源池需求,近 300 個(gè)區(qū)域全覆蓋,代理 IP 可連續(xù)使用 1 分鐘,適用于請(qǐng)求 IP 連續(xù)型業(yè)務(wù)
-
動(dòng)態(tài)版,每個(gè)請(qǐng)求一個(gè)隨機(jī)代理 IP,海量 IP 資源池需求,近 300 個(gè)區(qū)域全覆蓋,適用于爬蟲類業(yè)務(wù)
-
定制版,靈活按照需求定制,定制 IP 區(qū)域,定制 IP 使用時(shí)長(zhǎng),定制 IP 每秒請(qǐng)求數(shù)
關(guān)于專業(yè)版和動(dòng)態(tài)版的更多介紹可以查看官網(wǎng):動(dòng)態(tài)版HTTP隧道服務(wù)說明 | 阿布云 - 為大數(shù)據(jù)賦能。
對(duì)于爬蟲來說,我們推薦使用動(dòng)態(tài)版,購(gòu)買之后可以在后臺(tái)看到代理隧道的用戶名和密碼。
整個(gè)代理的連接域名為 proxy.abuyun.com,端口為 9020,它們均是固定的,但是每次使用之后 IP 都會(huì)更改,該過程其實(shí)就是利用了代理隧道實(shí)現(xiàn)(參考官網(wǎng)介紹)。
其官網(wǎng)原理介紹如下:
-
云代理通過代理隧道的形式提供高匿名代理服務(wù),支持 HTTP/HTTPS 協(xié)議。
-
云代理在云端維護(hù)一個(gè)全局 IP 池供代理隧道使用,池中的 IP 會(huì)不間斷更新,以保證同一時(shí)刻 IP 池中有幾十到幾百個(gè)可用代理 IP。
-
需要注意的是代理 IP 池中有部分 IP 可能會(huì)在當(dāng)天重復(fù)出現(xiàn)多次。
-
動(dòng)態(tài)版 HTTP 代理隧道會(huì)為每個(gè)請(qǐng)求從 IP 池中挑選一個(gè)隨機(jī)代理 IP。
-
無須切換代理 IP,每一個(gè)請(qǐng)求一個(gè)隨機(jī)代理 IP。
-
HTTP 代理隧道有并發(fā)請(qǐng)求限制,默認(rèn)每秒只允許 5 個(gè)請(qǐng)求。如果需要更多請(qǐng)求數(shù),請(qǐng)額外購(gòu)買。
注意,默認(rèn)套餐的并發(fā)請(qǐng)求是 5 個(gè)。如果需要更多請(qǐng)求數(shù),則須另外購(gòu)買。
使用教程的官網(wǎng)鏈接為:HTTP隧道(動(dòng)態(tài)版)Python 接入指南| 阿布云 - 為大數(shù)據(jù)賦能。教程提供了 requests、urllib、Scrapy 的接入方式。
現(xiàn)在我們以 requests 為例,接入代碼如下所示:
import requests ? url = 'http://httpbin.org/get' ? # 代理服務(wù)器 proxy_host = 'proxy.abuyun.com' proxy_port = '9020' ? # 代理隧道驗(yàn)證信息 proxy_user = 'H01234567890123D' proxy_pass = '0123456789012345' ? proxy_meta = 'http://%(user) s:%(pass) s@%(host) s:%(port) s' % {'host': proxy_host,'port': proxy_port,'user': proxy_user,'pass': proxy_pass, } proxies = {'http': proxy_meta,'https': proxy_meta, } response = requests.get(url, proxies=proxies) print(response.status_code) print(response.text)
在這里其實(shí)就是使用了代理認(rèn)證,在前面我們也提到過類似的設(shè)置方法,運(yùn)行結(jié)果如下:
200 {"args": {}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1"}, "origin": "60.207.237.111", "url": "http://httpbin.org/get" }
輸出結(jié)果的 origin 即為代理 IP 的實(shí)際地址。這段代碼可以多次運(yùn)行測(cè)試,我們發(fā)現(xiàn)每次請(qǐng)求 origin 都會(huì)在變化,這就是動(dòng)態(tài)版代理的效果。
這種效果其實(shí)跟之前的代理池的隨機(jī)代理效果類似,都是隨機(jī)取出了一個(gè)當(dāng)前可用代理。但是,與維護(hù)代理池相比,此服務(wù)的配置簡(jiǎn)單,使用更加方便,更省時(shí)省力。在價(jià)格可以接受的情況下,個(gè)人推薦此種代理。
4. 結(jié)語
以上內(nèi)容便是付費(fèi)代理的相關(guān)使用方法,付費(fèi)代理穩(wěn)定性比免費(fèi)代理更高。讀者可以自行選購(gòu)合適的代理。
最后,如果本文對(duì)您有幫助,可以給我點(diǎn)一個(gè)贊支持一下!
同時(shí),如果你喜歡本系列爬蟲文章,可以點(diǎn)個(gè)關(guān)注跟著我一起學(xué)習(xí)更多爬蟲知識(shí)。