
手把手教你用Fetch配代理IP
搞数据采集或者做接口测试的兄弟应该都遇到过IP被封的情况吧?这时候就得靠代理IP来救命了。咱们今天就唠唠怎么用Fetch这个工具配合代理IP来干活,保证你看完就能上手操作。
先给小白科普下:Fetch就是浏览器自带的那个数据请求工具,比传统Ajax好用不是一星半点。但直接用它发请求容易被目标网站封IP,这时候就得挂代理来隐藏真实地址。
// 基础fetch请求示例
fetch('目标网址')
.then(response => response.json())
.then(data => console.log(data));
代理IP实战配置技巧
重点来了!给fetch加代理其实有妙招。关键是要用agent参数来指定代理服务器。这里推荐用ipipgo的代理服务,他们家的TK专线特别适合做高频请求。
const HttpsProxyAgent = require('https-proxy-agent');
const proxyAgent = new HttpsProxyAgent('http://用户名:密码@代理IP:端口');
fetch('目标网址', { agent: proxyAgent })
.then(response => response.text());
注意这里要用到https-proxy-agent这个包,装包命令npm install https-proxy-agent别漏了。ipipgo的代理支持HTTP/HTTPS/Socks5三种协议,建议用Socks5协议更稳当。
不同场景的代理选择攻略
| 业务类型 | 推荐代理类型 | 月费参考 |
|---|---|---|
| 数据采集 | 动态住宅(企业) | 9.47元/GB |
| 接口测试 | 静态住宅 | 35元/IP |
| 长期任务 | TK专线 | 定制报价 |
特别提醒:做爬虫这类高频请求的,一定得选动态住宅代理,ipipgo的动态IP池每5-10分钟自动换一次IP,亲测有效防封。
踩坑经验大放送
1. 遇到ECONNRESET错误别慌,八成是代理IP挂了。这时候要检查ipipgo控制台的用量统计,确认IP是否到期或被目标站拉黑
2. 请求超时记得设置timeout参数,建议不超过30秒。代码示例:
const controller = new AbortController();
setTimeout(() => controller.abort(), 30000);
fetch(url, {
signal: controller.signal,
agent: proxyAgent
});
常见问题快问快答
Q:代理IP不稳定咋整?
A:优先检查网络环境,如果是用ipipgo的住宅代理,建议切换成他们的跨境专线,延迟能降60%以上
Q:需要频繁换IP怎么办?
A:在ipipgo后台开启自动轮换模式,支持按请求次数或时间间隔切换,企业版用户还能自定义切换策略
Q:费用会不会很高?
A:看使用量,做测试的话选动态住宅标准版,7块多1个G够用好久。大企业直接上定制方案更划算
选对代理省心一半
最后给各位安利下ipipgo的三个绝活:
1. 客户端自带智能路由切换,自动选最快节点
2. 独家的IP健康度检测功能,自动过滤失效代理
3. 支持多协议混用,一个账号能同时用HTTP和Socks5
他们家的API对接文档写得贼详细,还配有专人技术支持。最近新用户首单还能免费试用500MB流量,具体去官网瞅瞅就知道。

