真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python3爬蟲中代理的使用方法

小編給大家分享一下Python3爬蟲中代理的使用方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、云岡網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為云岡等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

相對免費代理來說,付費代理的穩(wěn)定性相對更高一點,本節(jié)介紹一下爬蟲付費代理的相關(guān)使用過程。

1. 付費代理分類

在這里將付費代理分為兩類:

提供接口獲取海量代理,按天或者按量付費,如訊代理

搭建了代理隧道,直接設(shè)置固定域名代理,如阿布云

本節(jié)講解一下這兩種代理的使用方法,分別以兩家代表性的代理網(wǎng)站為例進行講解。

2. 訊代理

訊代理個人使用過代理有效率還是蠻高的,此處非廣告,其官網(wǎng)為:http://www.xdaili.cn/。

有多種類別的代理可供選購,摘抄其官網(wǎng)的各類別代理介紹如下:

優(yōu)質(zhì)代理: 適合對代理IP需求量非常大,但能接受代理有效時長較短(10~30分鐘),小部分不穩(wěn)定的客戶

獨享動態(tài): 適合對代理IP穩(wěn)定性要求非常高,且可以自主控制的客戶,支持地區(qū)篩選。

獨享秒切: 適合對代理IP穩(wěn)定性要求非常高,且可以自主控制的客戶,快速獲取IP,地區(qū)隨機分配

動態(tài)混撥: 適合對代理IP需求量大,代理IP使用時效短(3分鐘),切換快的客戶

優(yōu)質(zhì)定制: 如果優(yōu)質(zhì)代理的套餐不能滿足您的需求,請使用定制服務(wù)

一般選擇第一類別優(yōu)質(zhì)代理即可,代理量比較大,但是代理的穩(wěn)定性沒那么高,有一些代理也是不可用的,所以這種代理的使用方式就需要借助于上一節(jié)所說的代理池,我們自己再做一次篩選,確保代理可用。

可以購買一天的試一下效果,購買之后會提供一個 API 來提取代理,如圖 9-6 所示:

Python3爬蟲中代理的使用方法

圖 9-6 提取頁面

比如在這里我的提取 API 為:http://www.xdaili.cn/ipagent/greatRecharge/getGreatIp?spiderId=da289b78fec24f19b392e04106253f2a&orderno=YZ20177140586mTTnd7&returnType=2&count=20,可能已過期,在此僅做演示。

在這里指定了提取數(shù)量為 20,提取格式為 Json,直接訪問鏈接即可提取代理,結(jié)果如圖 9-7 所示:

Python3爬蟲中代理的使用方法

圖 9-7 提取結(jié)果

接下來我們要做的就是解析這個 Json,然后將其放入我們的代理池中。

當然如果信賴訊代理的話也可以不做代理池篩選,直接使用,不過我個人還是推薦再使用代理池篩選一遍,提高可用幾率。

根據(jù)上一節(jié)代理池的寫法,我們只需要在 Crawler 中再加入一個 crawl 開頭的方法即可。

方法實現(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,返回代理即可。

這樣代理池運行之后就會抓取和檢測該接口返回的代理了,如果可用,那么就會被設(shè)為 100,通過代理池接口即可獲取到。

以上以訊代理為例說明了此種批量提取代理的使用方法。

3. 阿布云代理

阿布云代理提供了代理隧道,代理速度快而且非常穩(wěn)定,此處依然非廣告,其官網(wǎng)為:https://www.abuyun.com/,如圖 9-8 所示:

Python3爬蟲中代理的使用方法

圖 9-8 阿布云官網(wǎng)

阿布云的代理主要分為兩種,專業(yè)版和動態(tài)版,另外還有定制版,摘抄官網(wǎng)的介紹如下:

專業(yè)版,多個請求鎖定一個代理 IP,海量 IP 資源池需求,近 300 個區(qū)域全覆蓋,代理 IP 可連續(xù)使用1分鐘,適用于請求 IP 連續(xù)型業(yè)務(wù)

動態(tài)版,每個請求一個隨機代理 IP,海量 IP 資源池需求,近 300 個區(qū)域全覆蓋,適用于爬蟲類業(yè)務(wù)

定制版,靈活按照需求定制,定制 IP 區(qū)域,定制 IP 使用時長,定制 IP 每秒請求數(shù)

關(guān)于專業(yè)版和動態(tài)版的更多介紹可以查看官網(wǎng):https://www.abuyun.com/http-proxy/dyn-intro.html。

對于爬蟲來說,推薦使用動態(tài)版,購買之后可以在后臺看到代理隧道的用戶名和密碼,如圖 9-9 所示:

Python3爬蟲中代理的使用方法

圖 9-9 阿布云代理后臺

可以發(fā)現(xiàn)整個代理的連接域名為 proxy.abuyun.com,端口為 9020,均是固定的,但是使用之后每次的 IP 都會更改,這其實就是利用了代理隧道實現(xiàn)。

其官網(wǎng)原理介紹如下:

云代理通過代理隧道的形式提供高匿名代理服務(wù),支持 HTTP/HTTPS 協(xié)議。

云代理在云端維護一個全局 IP 池供代理隧道使用,池中的 IP 會不間斷更新,以保證同一時刻 IP 池中有幾十到幾百個可用代理IP。

需要注意的是代理IP池中有部分 IP 可能會在當天重復(fù)出現(xiàn)多次。

動態(tài)版HTTP代理隧道會為每個請求從 IP 池中挑選一個隨機代理 IP。

無須切換代理 IP,每一個請求一個隨機代理IP。

HTTP代理隧道有并發(fā)請求限制,默認每秒只允許 5 個請求。如果需要更多請求數(shù),請額外購買。

注意默認套餐的并發(fā)請求是 5 個,如果需要更多需要另外購買。

使用的教程在官網(wǎng)也有,鏈接為:https://www.abuyun.com/http-proxy/dyn-manual-python.html,提供了 Requests、Urllib、Scrapy 的接入方式。

以 Requests 為例,接入示例如下:

import requests
 
url = 'http://httpbin.org/get'
 
# 代理服務(wù)器
proxy_host = 'proxy.abuyun.com'
proxy_port = '9020'
 
# 代理隧道驗證信息
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è)置方法,運行結(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的實際地址,可以多次運行測試,可以發(fā)現(xiàn)每次請求 origin 都會在變化,這就是動態(tài)版代理的效果。

這種效果其實跟我們之前的代理池的隨機代理效果類似,都是隨機取出了一個當前可用代理。

但是此服務(wù)相比于維護代理池來說,使用更加方便,配置簡單,省時省力,在價格可以接受的情況下,個人推薦此種代理。

以上是Python3爬蟲中代理的使用方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:Python3爬蟲中代理的使用方法
文章網(wǎng)址:http://weahome.cn/article/iigpcc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部