01代理用户名怎么看?
代理用户名是一串简短的设置字符串,由连字符连接的几部分组成。它以 user 开头,后面加上名称和值的组合,用来设定出口位置和 IP 保持多久。了解这些部分后,不用打开控制台也能手写任意连接字符串。
country 后面跟两个小写字母的国家代码。user-country-us 表示美国 IP,user-country-jp 表示日本 IP。city 后面跟小写的城市名,空格换成下划线,例如 user-country-us-city-new_york。
session 后面跟你自己起的会话名。使用 user-country-jp-session-shop1 时,所有使用该名称的请求最长 120 分钟内保持同一个 IP。加上 type-mobile,例如 user-type-mobile-country-gb,即可通过移动 IP 出口。
密码栏始终填写以 pt_ 开头的访问令牌。要更换位置或会话,只改用户名,令牌保持不变。
- user 表示设置的开头。
- country 加两个字母的代码用于选择国家。
- city 加下划线格式的名称用于选择城市。
- session 加名称用于保持同一 IP。
- type-mobile 用于选择移动 IP。
02HTTP 代理和 SOCKS5 代理该用哪个?
HTTP 代理是网页数据采集和浏览器操作的简便默认选择,SOCKS5 代理则适合非网页流量,或需要在代理端解析 DNS 的场景。ProxyToo 在同一个网关 gate.proxytoo.com:7000 上同时支持两种协议。用户名和令牌不变,只需更改地址开头的协议。
HTTP 代理专为网页请求设计,几乎所有库和浏览器都能直接识别。HTTPS 网站同样可用,因为代理会为连接建立加密隧道。对于 requests、Scrapy、Puppeteer、Playwright 等网页工具,建议先用 HTTP 格式。
SOCKS5 直接转发连接本身,因此除网页外还能承载多种流量。在 Python 中,地址以 socks5h 开头时,代理会在出口国家解析主机名,让你的位置保持一致。基于 Chromium 的浏览器对带用户名的 SOCKS5 支持有限,所以浏览器自动化用 HTTP 更顺畅。
- 网页数据采集和浏览器自动化用 HTTP
- 发送非网页流量的程序用 SOCKS5
- 需要在代理所在国家解析 DNS 时用 socks5h 地址
- 两种协议使用相同的用户名和令牌
03如何在浏览器或指纹浏览器中添加代理?
在普通浏览器中,打开代理扩展,在各自的栏位中填入四项:主机、端口、用户名和令牌。在控制台的生成连接信息中选择 host:port:user:pass 格式,四项会显示在同一行,方便逐项复制。如果首次加载页面时弹出认证窗口,在那里输入用户名和令牌即可。
指纹浏览器为每个配置文件提供独立的浏览器环境,基本原则是一个配置文件对应一个用户名。在配置文件的代理栏选择 HTTP 或 SOCKS5,然后在用户名中加上会话部分,每个配置文件使用不同的会话名。这样每个配置文件都有自己的 IP,并且在该配置文件内 IP 保持不变。
把配置文件的语言、时区和位置设成与所选国家一致,页面就会呈现当地访客看到的样子。对于长期运营同一个账号的配置文件,ISP 代理或独享数据中心代理在整个使用期内保持同一个 IP。在控制台的购买产品中选择数量和期限,即可订购其中任一种。
- 每个配置文件一个会话名
- 语言和时区与 IP 所在国家一致
- 长期运行的配置文件用 ISP 代理
- 在认证窗口中填写用户名和令牌
04如何在 Python requests 和 Scrapy 中使用代理?
在 Python 中,把代理写成 http://username:token@gate.proxytoo.com:7000 这样的一行地址,传给库的代理设置。使用 requests 时,关键是在 http 和 https 两个条目中填入同一个地址。两个条目都填好后,HTTPS 请求也会经过代理。
在 requests 的 Session 对象上设置一次代理,该会话中的所有请求都会使用它。想要每次请求换一个新 IP,就用只含国家的用户名;登录这类需要延续的流程,就用带会话部分的用户名。使用 SOCKS5 时,为 requests 安装 SOCKS 扩展,并把地址开头改为 socks5h。
在 Scrapy 中,把同样格式的地址放进每个请求的 meta proxy 值,内置的代理中间件会自动把用户名和令牌转换成认证头。如果想让所有请求都使用同一设置,可以写一个小的下载器中间件来填入代理值。如果想把流量分成多个会话,就让这个中间件为每批请求分配不同的会话名。
通过 CONCURRENT_REQUESTS 和 DOWNLOAD_DELAY 等设置调整并发数和请求间隔。先设低一些,确认响应稳定后再逐步调高,在速度和成功率之间取得平衡。住宅代理按使用流量计费,过滤掉图片和字体可以让余额用得更久。
05如何在 Node.js、Puppeteer 和 Playwright 中设置代理?
在 Node.js 中,常用做法是创建一个代理 agent,再交给请求库使用。HTTP 可用 https-proxy-agent 或 undici 的 ProxyAgent 等包,SOCKS5 可用 socks-proxy-agent,传入包含用户名和令牌的地址。agent 只创建一次并在各请求间复用,连接得以复用,速度也更快。
使用 Puppeteer 时,在 --proxy-server 启动参数中只填网关地址,打开页面后再用 page.authenticate 单独传入用户名和令牌。这样分开设置是在 Chrome 中最可靠的方式。要切换国家或会话,最简单的办法是用新的用户名再启动一个浏览器。
使用 Playwright 时,在 proxy 启动选项中设置 server、username 和 password,一步即可完成认证。password 栏填写访问令牌。你也可以只启动一个浏览器,为每个 context 分别设置代理,让每个 context 对应一个会话名,一个脚本就能同时使用多个 IP。
浏览器自动化在每个页面都会下载图片、视频和字体,流量累积起来很可观。用请求拦截屏蔽不需要的资源,可以降低按 GB 计费的住宅代理和移动代理的成本。加上会话名可以在页面加载期间保持 IP 不变,页面渲染更完整。
06轮换代理和粘性会话,数据采集用哪个更好?
逐页独立读取的数据采集,每次请求换一个新 IP;登录、购物车这类需要延续的流程,使用会话。用户名中没有会话部分时,每次请求都会换 IP;有会话部分时,该名称下的 IP 保持不变。一个令牌两种方式都能用,可以按任务的每一步来选择。
轮换模式适合页面之间没有关联的任务,例如搜索结果、商品列表和价格表。请求会均匀分散到大量 IP 上,在网站看来就像许多访客的正常访问。即使对同一网站大规模抓取,拉开请求间隔也能保持稳定。
使用会话的诀窍是每个工作单元用一个单独的会话名。如果要检查五个店铺账号,就命名为 shop1 到 shop5,让每个账号保持自己的 IP。把工作拆成能在会话时长内完成的短流程,整个流程就能使用同一个 IP。
如果需要整整一个月使用同一个 IP,ISP 代理或独享数据中心代理最合适;如果需要大批量、低单价,共享数据中心代理或 IPv6 代理是不错的选择。对于流量大、国家可以混合的任务,每天 $37.58 的无限流量住宅代理让成本更容易规划。
- 独立页面每次请求换新 IP
- 登录和结账流程保持同一会话名
- 每个工作单元使用不同的会话名
- 整月使用同一 IP 选 ISP 代理或独享数据中心代理
07如何检查代理 IP 并排查连接错误?
最快的检查方法是通过代理向一个显示 IP 的页面发送请求,确认 IP 和国家与用户名中的国家一致。在控制台的生成连接信息中选择 curl 格式,就能得到一条现成的检查命令,直接粘贴到终端即可。如果设置了会话,把同一条命令发送两三次,确认 IP 保持不变。
407 响应表示代理没有接受你的凭据,通常是用户名或令牌中有一个字符出错。检查令牌是否以 pt_ 开头、复制时是否带入了空格或换行,以及用户名是否以 user 开头。如果一行地址中含有特殊字符,对其进行 URL 编码即可解决。
403 或 429 这类响应来自网站,说明代理连接正常,是网站在监控请求速度或模式。拉开请求间隔,发送类似浏览器的请求头,并从会话模式改为每次请求换新 IP。
超时通常是因为办公室或学校网络屏蔽了网关端口、城市目标范围过窄,或代码中的超时时间太短。换一个网络运行同一条命令,去掉城市部分只指定国家,并延长请求的超时时间。同时确认余额充足;如果是 IP 产品,确认我的订单中该订单显示为使用中。
- 407 表示要检查用户名和令牌
- 403 或 429 表示要放慢速度并轮换 IP
- 超时表示要检查网络、城市和超时设置
- 同一条命令运行几次以测试会话
08如何保护代理访问令牌的安全?
访问令牌既是你的账号 ID,也是代理密码,任何拿到它的人都能用你的余额使用代理。服务器只保存令牌的哈希值,所以你注册时保存的令牌文件是唯一的原件。把副本存放在两个地方,并添加到密码管理器中,既安全又方便查找。
不要把令牌写进代码,而是从环境变量或单独的配置文件中读取。把该配置文件加入 .gitignore,避免进入代码仓库;在共享服务器上收紧文件权限,只允许你自己读取。这样你可以分享代码,而令牌始终留在自己的电脑上。
日志和截图也要留意。出错时打印完整的代理地址会把令牌直接写进日志,因此记录地址时要遮盖令牌部分。发帖提问或分享截图时,只展示用户名,先把令牌删除。
- 令牌文件保存在两个地方
- 从环境变量读取令牌
- 配置文件不放进代码仓库
- 日志和截图中遮盖令牌