便宜又好用的移动 4G 蜂窝代理快来看看! 在爬虫与反爬虫斗争愈演愈烈的情况下各大网站和 App 的风控检测越来越强其中一项就是 IP 封禁。为了解决 IP 封禁的困扰一个有效的方式就是设置代理设置代理之后爬虫可以借助代理的 IP 来伪装自己的真实 IP 地址从而突破反爬虫的限制。但代理的质量有高有低比如市面上的免费代理几乎绝大多数都是不可用或者被封禁的状态而有些付费普通代理也陆续被加入了各大网站和 App 的风控黑名单。因此现在可以用作高质量数据爬爬取的代理越来越少了目前市面上质量较高的代理主要有独享代理、ADSL 代理、移动蜂窝代理这几种类型。本代理服务就是基于移动蜂窝网络4G、5G的轮换代理服务本文档会介绍此服务的申请和使用方法。移动蜂窝代理移动蜂窝代理其实就是基于手机流量搭建的代理服务所有的代理 IP 都是手机真实的 IP。此种代理在爬虫领域使用相对较少因此被封禁的概率也更小所以此种代理对于爬取一些风控极强的网站和 App 的爬取有很好的效果。本代理服务背后是基于一个大规模的群控手机池搭建的代理服务所有流量都经由纯正的手机流量转发支持市面上几乎所有网站和 App 的数据请求代理质量极高能够极大减小风控概率。申请方法要使用蜂窝代理服务可以首先到「申请页面」进行申请首次申请有 1 积分免费额度。如果您尚未登录则会自动跳转到登录页面登录之后继续申请即可。使用方法申请完毕之后可以到「控制台」中查看本人的申请结果如图所示点击 「Credentials」即可查看使用蜂窝代理服务的用户名及密码以冒号分隔其中用户名是 8 位密码是 32 位如图所示本移动蜂窝代理是一种轮换代理因此使用的时候只需要设置一个固定的代理地址和端口即可代理的地址和端口分别是 cellular.proxy.acedata.cloud 和 30000本代理是 HTTP/HTTPS/SOCKS 协议的代理可以用于请求 HTTP 和 HTTPS 协议的网站。命令测试有了代理的用户名密码之后最方便的方法便是通过 curl 命令行进行测试如尚未安装请参考 https://curl.se/ 安装即可。假如当前代理的用户名密码是1f78266a:eff0896726224fa2a99fe82dd1f07562我们可以用如下 curl 命令进行测试curl -x 1f78266a:eff0896726224fa2a99fe82dd1f07562cellular.proxy.acedata.cloud:30000 https://ipinfo.io这里我们使用 curl 的-x参数指定了代理地址代理协议默认是 HTTP/HTTPS这里请求的 URL 是 https://ipinfo.io这个站点可以返回请求该站点的真实 IP 地址和 IP 所在地域。注意上述用户名密码可能无效请自行替换成你的用户名密码。运行结果如下{ ip: 39.144.10.182, city: Shanghai, region: Shanghai, country: CN, loc: 31.2222,121.4581, org: AS9808 China Mobile Communications Group Co., Ltd., postal: 200000, timezone: Asia/Shanghai, readme: https://ipinfo.io/missingauth }可以看到返回结果的 country 是 CN代表中国org 是 China Mobile代表中国移动网络确实是蜂窝代理出口。如果再次运行可以得到不一样的结果每次请求都是随机的 IP 出口。代码对接下面以 Python 为例演示该蜂窝轮换代理的设置方法import requests proxy http://{proxy_username}:{proxy_password}cellular.proxy.acedata.cloud:30000 proxies { http: proxy, https: proxy } for _ in range(3): resp requests.get(https://ipinfo.io, proxiesproxies) print(resp.text)这里我们首先声明了代理的 URL 并定义为 proxy 变量协议是 http 协议后面跟随轮换代理的用户名和密码即控制台展示的用户名和密码二者以冒号分隔后面再跟一个符号再跟代理的地址和端口即可。接着声明了一个 proxies 变量配置了两个键值对键名分别为 http 和 https其键值都是 proxy代表对于 HTTP 和 HTTPS 协议的网站都是用 proxy 变量定义的代理来进行请求。接下来定义了三次循环进行代理的测试这里请求的 URL 是 https://ipinfo.io这个站点可以返回请求该站点的真实 IP 地址和 IP 所在地域。运行结果如下{ ip: 39.144.18.26, city: Shanghai, region: Shanghai, country: CN, loc: 31.2222,121.4581, org: AS9808 China Mobile Communications Group Co., Ltd., postal: 200000, timezone: Asia/Shanghai, readme: https://ipinfo.io/missingauth } { ip: 39.144.18.26, city: Shanghai, region: Shanghai, country: CN, loc: 31.2222,121.4581, org: AS9808 China Mobile Communications Group Co., Ltd., postal: 200000, timezone: Asia/Shanghai, readme: https://ipinfo.io/missingauth } { ip: 39.144.182.55, city: Zhanjiang, region: Guangdong, country: CN, loc: 21.2339,110.3875, org: AS24445 Henan Mobile Communications Co.,Ltd, postal: 524000, timezone: Asia/Shanghai, readme: https://ipinfo.io/missingauth }可以看到每次运行的结果得到的代理 IP 都是随机的而且 IP 所在地域确实是来源于真实手机流量。当然上述的代理设置方式实际上是一个相对简洁的设置方式。实际上上述代码等价于在请求的时候设置了一个额外的 Headers - Proxy Authorization所以上述代码还可以改写如下import requests import base64 proxy_host cellular.proxy.acedata.cloud proxy_port 30000 proxy_username {proxy_username} # 8位用户名 proxy_password {proxy_password} # 32位密码 credentials base64.b64encode( f{proxy_username}:{proxy_password}.encode()).decode() proxies { http: fhttp://{proxy_host}:{proxy_port}, https: fhttp://{proxy_host}:{proxy_port} } headers { Proxy-Authorization: fBasic {credentials} } for _ in range(3): resp requests.get(https://ipinfo.io, proxiesproxies, headersheaders) print(resp.text)可以看到这里我们通过 Proxy-Authorization 这个请求头额外设置了代理的用户名和密码需要进行 Base64 编码这样的代码运行效果也是一样的。对于其他语言比如 JavaScript 的 axios也可以使用类似的设置方式const axios require(axios); const base64 require(base64); const proxy_host cellular.proxy.acedata.cloud; const proxy_port 30000; const proxy_username {proxy_username}; // 8位用户名 const proxy_password {proxy_password}; // 32位密码 const credentials base64.encode(${proxy_username}:${proxy_password}); const proxies { http: http://${proxy_host}:${proxy_port}, https: http://${proxy_host}:${proxy_port}, }; const headers { Proxy-Authorization: Basic ${credentials}, }; for (let i 0; i 3; i) { axios .get(https://ipinfo.io, { proxies, headers }) .then((resp) console.log(resp.data)) .catch((err) console.error(err)); }运行效果都是一样的。对于其他语言的设置方法请参考上文自行改写。购买更多如您的套餐已经耗尽您需要购买更多才能继续使用该代理服务。要购买更多请到「申请页面」直接点击「购买更多」按钮即可选购单次购买更多单价越便宜。