付费代理ip的使用 – 熊猫Proxy官方分享

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

在反爬虫手段一篇中提到了代理IP的使用,本篇介绍下市面上主流代理IP运营商的分类和使用。

相对免费代理来说,付费代理的稳定性更高,故本篇只介绍付费代理的使用。

一、付费代理分类

付费代理分为两类:

一类提供接口获取海量代理,按天或者按量收费,如熊猫代理;

一类搭建了代理隧道,直接设置固定域名代理,如阿布云代理。

本节分别以两家代表性的代理网站为例,讲解这两类代理的使用方法,

二、熊猫代理

熊猫代理的代理效率很高(作者亲测),官网为http://www.xiongmaodaili.com/,如下图所示。

熊猫代理上可供选购的代理有多种类别,包括如下几种(参考官网介绍)。

高效代理:它适合对代理IP需求量非常大,但能接受较短代理有效时长(3~10分钟),需求灵活的客户。

动态代理: 每个请求随机分配一个代理IP,海量IP资源池需求,近300个区域全覆盖,它适用于爬虫类业务。

独享代理:它适合对代理IP稳定性要求非常高且可以自主控制的客户,支持地区筛选。

订制代理:如果标准套餐不能满足你的需求,可以和客服联系订制服务,它可以灵活按照需求订制,订制IP区域,订制IP使用时长,订制IP每秒请求数。

一般选择第一类别高效代理即可,这种代理的量比较大,但是其稳定性不能达到100%,平均有效率在95%左右,一些代理不可用。所以这种代理的使用就需要借助于自建代理池,自己再做一次筛选,以确保代理可用。

读者可以购买一天时长来试试效果。购买之后,熊猫代理会提供一个API来提取代理,如下图所示。

比如,这里提取API为http://www.xiongmaodaili.com/xiongmao-web/api/glip?secret=6a×××××××××××&orderNo=GL20190××××××××××××××××&count=50&isTxt=0&proxyType=1

在这里指定了提取数量为50,提取格式为JSON,直接访问链接即可提取代理,结果如下图所示。

接下来我们要做的就是解析这个JSON,然后将其放入代理池中。

如果信赖熊猫代理的话,我们也可以不做代理池筛选,直接使用代理。不过我个人还是推荐使用代理池筛选,以提高代理可用几率。

根据上一节代理池的写法,我们只需要在Crawler中再加入一个crawl开头的方法即可。方法实现如下所示:

def crawl_xiongmaodaili(self):        “””        获取熊猫代理        :return: 代理        “””        url = ‘http://www.xiongmaodaili.com/xiongmao-web/api/glip?secret=6afacb8beadajhfjafklajfajf3234&orderNo=GL20190718115524hm0VSwxL&count=50&isJson=1&proxyType=1’        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’)

这样我们就在代理池中接入了熊猫代理。获取熊猫代理的结果之后,解析JSON,返回代理即可。

代理池运行之后就会抓取和检测该接口返回的代理,如果代理可用,那么分数就会被设为100,通过代理池接口即可获取到这些可用代理。

三、阿布云代理

阿布云代理提供了代理隧道,代理速度快且非常稳定,其官网为https://www.abuyun.com/,如下图所示。

阿布云代理主要分为两种:专业版和动态版,另外还有定制版(参考官网介绍)。

专业版:多个请求锁定一个代理IP,海量IP资源池需求,近300个区域全覆盖,代理IP可连续使用1分钟,它适用于请求IP连续型业务。

动态版:它适合对代理IP需求量大、代理IP使用请求不限制ip出口、切换快的客户。

定制版:和熊猫代理一样可以按需求个性化订制。

关于专业版和动态版的更多介绍可以查看官网:https://www.abuyun.com/http-proxy/dyn-intro.html。

对于爬虫来说,我们推荐使用动态版,购买之后可以在后台看到代理隧道的用户名和密码,如下图所示。

整个代理的连接域名为proxy.abuyun.com,端口为9020,它们均是固定的,但是每次使用之后IP都会更改,该过程其实就是利用了代理隧道实现(参考官网介绍)。

云代理通过代理隧道的形式提供高匿名代理服务,支持HTTP/HTTPS协议。

云代理在云端维护一个全局IP池供代理隧道使用,池中的IP会不间断更新,以保证同一时刻IP池中有几十到几百个可用代理IP。

需要注意的是,代理IP池中部分IP可能会在当天重复出现多次。

动态版HTTP代理隧道会为每个请求从IP池中挑选一个随机代理IP。

无须切换代理IP,每一个请求分配一个随机代理IP。

HTTP代理隧道有并发请求限制,默认每秒只允许5个请求。如果需要更多请求数,请额外购买。

注意,默认套餐的并发请求是5个。如果需要更多请求数,则须另外购买。

使用教程的官网链接为:https://www.abuyun.com/http-proxy/dyn-manual-python.html。教程提供了requests、urllib、Scrapy的接入方式。

现在我们以requests为例,接入代码如下所示:

import requests

url = ‘http://httpbin.org/get’

# 代理服务器

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)

这里其实就是使用了代理认证,在前面我们也提到过类似的设置方法,运行结果如下:

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”

}

输出结果的origin即为代理IP的实际地址。这段代码可以多次运行测试,我们发现每次请求origin都会在变化,这就是动态版代理的效果。

这种效果其实跟之前的代理池的随机代理效果类似,都是随机取出了一个当前可用代理。但是,与维护代理池相比,此服务的配置简单,使用更加方便,更省时省力。在价格可以接受的情况下,个人推荐此种代理。

四、结语

以上内容便是付费代理的相关使用方法,付费代理稳定性比免费代理更高。读者可以自行选购合适的代理。

© 著作权归作者所有,转载或内容合作请联系作者
https://www.jianshu.com/p/1e111bd57de7

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
Python
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论