在传统的爬虫开发中,开发者往往要花数小时编写 IP 轮换管理逻辑:需要加载包含 1000 个 IP 的列表、检查它们的可用性、剔除被封禁的 IP,并确保 IP 不重复。
在 CyberYozh App,我们改变了游戏规则。你不再需要代理列表。你只需要一个地址,它会自动为你更换 IP。所有的配置魔力都不在代码中,而是在我们的凭据生成器(适用于住宅轮换代理)中完成。
在本指南中,我们将演示如何使用我们的住宅代理,在 3 分钟内通过 Python 配置自动轮换和 Sticky 会话。
🛠 第一部分:在 CyberYozh App 中进行准备
在打开 PyCharm 之前,先进入个人后台。我们需要获取正确的访问权限。在 “我的代理” 部分,点击 “生成凭据” 按钮。

图 1. 个人后台中的“生成凭据”(Creds)按钮。
在这里你可以管理代理的行为逻辑。我们提供 3 种模式,它们会改变代理在代码中的表现:
随机 IP (Random /
-res-any): 每一个新请求 = 一个新 IP。非常适合价格抓取和数据收集。短会话 (Targeting): IP 保持最长 1 分钟。适用于在特定城市/州的精准操作。
长会话 (Long /
-resfix): IP 为你保留长达 6 小时(Sticky Session)。非常适合网站登录,以确保你不会掉线。

图 2. 生成器中的会话类型选择:随机、短会话和长会话。

图 3. 生成连接数据按钮。
⚠️ 关于端口的重要说明: 与其他服务不同,我们为了稳定性拆分了端口:
使用 requests (HTTP/HTTPS) 时,请使用端口 5959。
使用 SOCKS5 客户端时,请使用端口 9595。
💻 第二部分:“爬虫”场景:自动轮换 (Random IP)
任务:向网站发起 10 次请求,且每次都要让网站将我们识别为新用户。以前你需要 10 个代理的列表。使用 CyberYozh App,你只需要一行带有 -res-any 前缀的代码。
import requests
# 生成器提供的数据(随机 IP 模式)
# 请注意 HTTP 请求使用的是 5959 端口!
PROXY_HOST = "51.77.190.247"
PROXY_PORT = "5959"
PROXY_USER = "pcJcWhGag4-res-any" # -res-any 前缀开启轮换
PROXY_PASS = "你的密码"
proxy_url = f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
proxies = {
"http": proxy_url,
"https": proxy_url
}
url = "https://httpbin.org/ip" # 将显示我们 IP 的网站
print("--- 启动轮换爬取 ---")
for i in range(5):
try:
# 每次请求同一个链接,CyberYozh 都会分配一个新 IP
response = requests.get(url, proxies=proxies, timeout=10)
current_ip = response.json()['origin']
print(f"请求 {i+1}: 你的外部 IP -> {current_ip}")
except Exception as e:
print(f"错误: {e}")
🚀 第三部分:“账号”场景:Sticky 会话 (Long Session)
任务:登录网站并在内部页面浏览 30 分钟,不更换 IP,以避免因活动异常而被封号。
在 CyberYozh App 生成器中选择 “长会话”。系统会给你一个带有唯一 Token 的登录名(例如:...-resfix-us-nnid-9d016...)。只要你使用这个登录名,IP 就会保持不变(最长 6 小时)。
import requests
# 生成器提供的数据(长会话模式)
# 登录名变长了 —— 其中封装了会话 ID
PROXY_USER = "pcJcWhGag4-resfix-us-nnid-9d016abcd"
PROXY_PASS = "你的密码"
PROXY_HOST = "51.77.190.247"
PROXY_PORT = "5959"
proxy_url = f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
# 使用 requests.Session 以保留 Cookie 和 Header
session = requests.Session()
session.proxies = {
"http": proxy_url,
"https": proxy_url
}
# 模拟浏览器
session.headers.update({
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
})
print("--- 在同一会话中运行 ---")
# 第一步:进入首页(获取 IP)
r1 = session.get("https://httpbin.org/ip")
ip1 = r1.json()['origin']
print(f"第一步:我们的 IP 是 {ip1}")
# 第二步:执行一些有用操作(IP 应当保持一致)
r2 = session.get("https://httpbin.org/ip")
ip2 = r2.json()['origin']
print(f"第二步:我们的 IP 是 {ip2}")
if ip1 == ip2:
print("成功!会话已保持,可以安全地操作账号。")
else:
print("注意!IP 已更换(请检查生成器设置)。")
📱 第四部分:移动代理 (Private 4G/LTE):通过代码控制调制解调器
对于住宅轮换代理,一切都很简单:你只需请求一个链接,我们的系统就会自动从池中为你提供新 IP。而移动独享代理 (Private)的机制不同。你拥有的是真实的 USB 调制解调器。要更换 IP,该调制解调器必须物理重启(重新连接到蜂窝基站)。
在 CyberYozh App 中,我们为独享端口(通道)提供了一个特殊的 API 链接。如果访问该链接,调制解调器将进入重启流程。
核心细节: 移动代理的 IP 更换需要时间(10-20 秒)。如果你的脚本没有等待机制,它会报错 ConnectionError。

图 4. 移动独享 (Private) 代理卡片中的更换 IP 地址链接。
实现重启函数 (更换 IP)
我们编写一个函数,该函数会调用 API 链接,并在调制解调器寻找新基站时暂停脚本。
import requests
import time
# --- CYBERYOZH APP 后台配置 ---
MOBILE_PROXY = "http://LOGIN:PASS@IP:PORT" # 你的访问数据
ROTATION_LINK = "https://app.cyberyozh.com/api/v1/..." # 来自“更换 IP 地址链接”字段的链接
def change_mobile_ip(api_link):
"""
用于重启移动调制解调器的函数。
"""
print(f"♻️ 正在启动 IP 更换...")
try:
# 1. 发送重启信号
r = requests.get(api_link)
if r.status_code == 200:
print("✅ 调制解调器已接收命令。")
else:
print(f"⚠️ API 错误: {r.status_code}")
return False
# 2. 关键点:等待重启完成
# 调制解调器需要时间断开连接并寻找新基站。
# 通常需要 10-20 秒。
wait_time = 15
print(f"⏳ 等待 {wait_time} 秒,直到调制解调器重新连网...")
time.sleep(wait_time)
return True
except Exception as e:
print(f"调用 API 时出错: {e}")
return False
# --- 使用示例 ---
proxies = {"http": MOBILE_PROXY, "https": MOBILE_PROXY}
# 第一步:使用当前 IP 工作
try:
ip_old = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10).json()['origin']
print(f"旧 IP: {ip_old}")
except:
print("代理暂时不可用或网络错误。")
# 第二步:更换 IP(如果被封禁或循环结束)
change_mobile_ip(ROTATION_LINK)
# 第三步:检查新 IP
try:
# 注意:如果 15 秒不够,这里可能会报错。
# 理想情况下应该添加重试循环(如第三部分所示)。
ip_new = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10).json()['origin']
print(f"新 IP: {ip_new}")
except Exception as e:
print("调制解调器尚未上线,请尝试增加 time.sleep()")
💡 小贴士:Passive OS Fingerprint(指纹伪装)
CyberYozh App 的 Private 套餐用户可以使用一项非常酷的功能 —— Passive OS Fingerprint。如果你正在爬取网站的移动版(例如 Instagram 或 TikTok),网站会检查 TCP/IP 报头。如果你的 User-Agent 显示“我是 iPhone”,但网络数据包却显示“我是 Windows Server”,那就很奇怪了。
为了提高信任度,请在 Python 中同步报头:
headers = {
# 此 User-Agent 必须与 CyberYozh 后台的 Fingerprint 设置相匹配!
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)..."
}
# 如果后台开启了“iOS”配置,且你发送了此报头 ——
# 对于网站来说,你看起来就像一个 100% 真实的、使用 LTE 网络浏览的 iPhone 用户。
⚠️ 关于 Shared 代理的重要警告
如果你购买的是移动Shared(共享)代理套餐,上述带有 API 链接的代码将无法工作。
原因: 共享调制解调器上有其他用户。如果你重启它,其他用户也会断网。
如何操作: 只需在
while True循环中发起请求。系统会根据定时器(每 5-10 分钟)自动更换 IP。你只需要处理 IP 切换瞬间可能出现的连接错误即可。
🛡 第五部分:集成时的常见错误
即使有如此便捷的工具,有时也会遇到障碍。以下是向我们技术支持反馈最多的 3 个问题,以及如何在代码中解决它们:
错误
ProxyError或连接重置:原因: 端口搞错了。
解决: 请确保在 Python
requests中你使用的是 5959 端口 (HTTP)。9595 端口仅用于 SOCKS 客户端(如 Telegram 或 Proxifier),requests库在没有额外模块的情况下对 SOCKS5 的支持并不稳定。
IP 变换过于频繁(在 Sticky 模式下):
原因: 你使用了
-res-any登录名,而不是生成的 Token。解决: 返回凭据生成器,选择“长会话”,并复制包含
nnidToken 的完整登录名字符串。
Authentication Failed(身份验证失败):
原因: 多了空格。
解决: 从后台复制时,登录名或密码末尾常会带上不可见的空格。Python 中的
strip()函数会解决这个问题:PROXY_USER = "pcJcWhGag4-res-any ".strip() # 去除空格
总结
使用来自 CyberYozh App 的住宅轮换代理和移动独享代理,可以让你从编写复杂轮换逻辑的工作中解脱出来。
需要爬虫抓取?使用
any前缀,即可获得海量 IP。需要账号操作?使用
fix前缀,即可获得极致稳定性。
👉 立即尝试: 进入 “我的代理” 页面,为住宅轮换代理生成凭据,或在移动独享代理中使用更换 IP 链接,并运行上述代码吧。
