新手网络爬虫利器介绍 之 移动蜂窝网络代理

news/2024/9/18 9:58:05/ 标签: 爬虫, 网络, python, 后端

移动蜂窝代理对接说明

爬虫与反爬虫斗争愈演愈烈的情况下,各大网站和 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:eff0896726224fa2a99fe82dd1f07562@cellular.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 为例演示该蜂窝轮换代理的设置方法:

python">import requestsproxy = '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', proxies=proxies)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,所以上述代码还可以改写如下:

python">import requests
import base64proxy_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': f'http://{proxy_host}:{proxy_port}','https': f'http://{proxy_host}:{proxy_port}'
}headers = {'Proxy-Authorization': f'Basic {credentials}'
}for _ in range(3):resp = requests.get('https://ipinfo.io',proxies=proxies, headers=headers)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));
}

运行效果都是一样的。

对于其他语言的设置方法,请参考上文自行改写。


http://www.ppmy.cn/news/1520142.html

相关文章

zlib压缩解压文件

zlib_utils.h #pragma once#include <Windows.h> #include <tchar.h>// 压缩文件 BOOL CompressFile(LPCTSTR lpSrcFileName, // 输入文件LPCTSTR lpDestFileName // 输出文件 );// 解压缩文件 BOOL UncompressFile(LPCTSTR lp…

Kafka消息积压的典型场景及解决方案

Kafka消息积压的典型场景&#xff1a; 1.实时/消费任务挂掉 比如&#xff0c;我们写的实时应用因为某种原因挂掉了&#xff0c;并且这个任务没有被监控程序监控发现通知相关负责人&#xff0c;负责人又没有写自动拉起任务的脚本进行重启。 那么在我们重新启动这个实时应用进行…

SolarMarker 正在使用水坑攻击与伪造的 Chrome 浏览器更新进行攻击

在过去的三个月里&#xff0c;eSentire 的安全研究团队发现信息窃密恶意软件 SolarMarker 都没有发动攻击&#xff0c;却在最近忽然重返舞台。此前&#xff0c;SolarMarker 的运营者使用 SEO 投毒或者垃圾邮件来引诱受害者&#xff0c;受害者试图下载一些文档的免费模板&#x…

数据结构---顺序表---单链表

目录 一、什么是程序&#xff1f; 程序 数据结构 算法 二、一个程序是否优秀的两个标准 2.1.时间复杂度 2.2.空间复杂度 三、数据结构 3.1.数据结构间的关系 1.逻辑结构 1&#xff09;线性关系 2&#xff09;非线性关系 2.存储结构 1&#xff09;顺序存储结构 …

antd:手写走马灯vue组件

在使用ant-design-vue做走马灯的时候,封装的组件的自由度太低,难以实现想要的效果,于是本人自己写了一个走马灯组件,以方便代码复用。本文将介绍如何在vue框架中,使用ant-design-vue手动实现走马灯组件效果。 结果如下图所示, 一、使用说明 使用时,直接创建一个组件,…

概率学 笔记一 - 概率 - 随机变量 - 期望 - 方差 - 标准差(也不知道会不会有二)

概率不用介绍&#xff0c;它的定义可以用一个公式写出&#xff1a; 事件发生的概率 事件可能发生的个数 结果的总数 事件发生的概率\cfrac{事件可能发生的个数}{结果的总数} 事件发生的概率结果的总数事件可能发生的个数​ 比如一副标准的 52 张的扑克牌&#xff0c;每张牌都…

揭秘DDoS常见攻击类型,内附全面高效的安全防护方案

随着互联网的飞速发展&#xff0c;网络安全问题日益严峻&#xff0c;其中分布式拒绝服务&#xff08;DDoS&#xff09;攻击已成为网络安全领域的一大威胁。为了有效应对这一挑战&#xff0c;快快网络推出的DDoS安全防护解决方案&#xff0c;为众多企业提供了坚实的防御屏障。本…

使用Blender云渲染的好处是什么?

​Blender是一款功能强大的开源3D创作软件&#xff0c;用于包括建模、动画、仿真、渲染、合成和视频编辑在内的多种应用。然而&#xff0c;Blender的渲染过程有时可能非常耗费资源&#xff0c;特别是处理复杂的3D场景时。作为CG行业不可或缺的一部分&#xff0c;云渲染通过使用…

银行管理基本指标

序号 指标类型 具体指标 口诀 1 规模指标-2 资产规模、市值 2 结构指标-5 资产结构、 贷款结构、 负债结构、 收入结构、 客户结构 资、负、客、贷、入 3 效率指标-2 成本收入比、人均净利润 4 市场指标-2 市盈率、市净率 2市 5 安全性指标-4 不良贷款…

Linux安装Hadoop(单机版)详细教程

目录 一、JDK安装 1、下载JDK安装包 2、解压下载的JDK安装包 3、移动并重命名JDK包 4、配置Java环境变量 5、验证安装是否成功 二、Hadoop安装 1、下载Hadoop安装包 2、解压Hadoop安装包 3、配置Hadoop环境变量 4、修改配置文件 5、验证Hadoop是否安装成功 三&…

详解Asp.Net Core管道模型中的五种过滤器的适用场景与用法

1. 前言 在 ASP.NET Core 中&#xff0c;过滤器是一种用于对请求管道进行前置或后置处理的组件。它们可以在请求处理的不同阶段干预和修改请求和响应&#xff0c;以实现一些通用的处理逻辑或功能增强。 ASP.NET Core 的管道模型由多个中间件组成&#xff0c;而过滤器是这个模…

矩阵性质简介

矩阵 一个 n m n\times m nm矩阵 M M M是由 n n n行 m m m列数字组成的数组&#xff0c; M r c M_{rc} Mrc​表示矩阵的第 r r r行 c c c列的元素 方阵 如果一个矩阵的行列相等&#xff0c;该矩阵称为方阵 对角矩阵 如果一个方阵只有主对角元素不等于零&#xff0c;该矩…

【qt】qss使用

1.按钮设置颜色 ui->pushButton->setStyleSheet("QPushButton { color : red;}");也可以通过rgb来设置 ff表示红色拉满&#xff0c;gb为0当然是红色 这只是针对pushbutton对象的控件设置的&#xff0c;如果我想设置所有的按钮空间都是一个颜色 这是通过设置界…

58、Python之函数高级:不定参数的函数,写出更加通用的装饰器

引言 上一篇文章中&#xff0c;我们见到引入了Python中的装饰器&#xff0c;通过一个简单的案例实现了一个初步的装饰器&#xff0c;但是&#xff0c;这个装饰器其实是有些缺陷。这一篇文章中&#xff0c;我们对上一篇文章中的装饰器进行一个优化升级&#xff0c;从而写出更加…

debian11配置开机脚本

在低版本的debian系linux系统中&#xff0c;增加开机自启脚本比较简单&#xff0c;直接修改/etc/rc.local文件&#xff0c;在exit 0之前增加需要运行的脚本即可。但是现在在高版本的linux中默认没有开启该功能&#xff0c;接下来我们通过设置来开启该功能。 首先&#xff0c;我…

搭建数据库启前后端环境

1、 安装postgre&#xff0c;修改pg_hba.conf文件 2、安装dbeaer 3、任务管理器-服务&#xff1a;查看是否启动postgresql-x64-11 4、连接测试&#xff1a;新建数据库连接 http://127.0.0.1:14269/browser/# pgAdmin等于dbeaver 5、创建数据库&#xff1a; 6、启动后端…

【数模资料包】最新数模国赛word+latex模版|数模常用的算法python+matlab代码

【2024最全国赛研赛数模资料包】C君珍贵国一数模资料&#xff5c;最新数模国赛wordlatex模版&#xff5c;数模常用的算法pythonmatlab代码 国赛指&#xff1a;高教社杯全国大学生数学建模竞赛&#xff0c;研赛指&#xff1a;华为杯研究生数学建模竞赛。资料内容具体看文末卡片…

计算机安全等级-系统架构师(六十一)

1《计算机信息系统安全保护等级划分准则》把计算机信息安全划分为5个等级&#xff0c;其中安全保护等级最高的是&#xff08;&#xff09;。 A安全标记保护级 B结构化保护级 C系统审计保护级 D访问验证保护级 解析&#xff1a; 用户自主保护级&#xff1a;用户和数据隔离。…

快手一面 客户端开发

快手一面【日常实习】 base&#xff1a; 北京 岗位&#xff1a;客户端开发-ios 时间&#xff1a; 2024/9/2 上午 11点 一面已过 &#xff0c;明天晚上二面 文章目录 快手一面【日常实习】操作系统 &#xff1a;进程和线程的区别 计网&#xff1a;1. 网络协议有哪些&#xf…

SpringBoot配置返回数据不存在null

一、引言 最近在做项目中遇到一个神奇的问题&#xff0c;在测试返回银行三级数据的时候有的项目中返回的数据中把null值的数据返回了&#xff0c;而有的时候就不存在null值数据&#xff0c;如下所示&#xff1a; 存在null值情况 不含null值情况 但是我们可以看一下返回的VO的…