
手把手教你用NodeJS的fetch配个代理IP
老铁们做数据抓取最怕啥?服务器给你IP封了!这时候就得靠代理IP来救场。咱今天拿NodeJS的fetch模块举个栗子,教你怎么用ipipgo家的代理服务来保平安。
先整明白代理IP咋回事
代理IP就像个中间商,帮你转发网络请求。举个实际场景:你要批量采集某网站数据,直接用自己服务器IP猛怼,分分钟被拉黑。这时候用ipipgo的动态IP池,每次请求换个马甲,对方网站根本摸不清套路。
// 举个基础fetch例子
const fetch = require('node-fetch');
async function basicRequest() {
const response = await fetch('https://target-site.com/data');
console.log(await response.text());
}
给fetch穿个代理马甲
重点来了!NodeJS原生的fetch不支持直接配代理,得用https-proxy-agent这个神器。先装它丫的:
npm install https-proxy-agent --save
然后咱们用ipipgo提供的代理地址(记得去官网个人中心复制专属代理地址):
const HttpsProxyAgent = require('https-proxy-agent');
const proxyUrl = 'http://username:password@gateway.ipipgo.com:9021'; // 这是示例地址
async function proxyRequest() {
const agent = new HttpsProxyAgent(proxyUrl);
const response = await fetch('https://target-site.com/protected-data', {
agent: agent,
headers: {'User-Agent': 'Mozilla/5.0'}
});
console.log('状态码:', response.status);
console.log(await response.json());
}
实战避坑指南
这里有几个血泪经验必须说:
1. 超时设置要加上
别让请求卡死在那,建议用AbortController控制时长
2. 错误重试机制
遇到403/429状态码,自动换个ipipgo的IP接着试
3. UA伪装很重要
别用默认的NodeJS User-Agent,容易被识破
常见问题QA
Q:代理IP突然不好使咋整?
A:先检查账号状态,ipipgo后台有实时使用统计。建议使用他们的API动态获取IP,比静态代理更稳
Q:怎么测试代理是否生效?
A:用这个测试接口试试:
fetch('https://api.ipipgo.com/check-ip', { agent: proxyAgent })
Q:需要频繁切换IP怎么办?
A:ipipgo的按量付费套餐支持每次请求自动换IP,在代理地址后面加&change=true参数就行
为啥选ipipgo?
说几个实在的:他们家的响应速度平均80ms,比同行快一倍不止。IP池每天更新20万+,还有专属的技术客服随时待命。最近新用户送5G流量包,够新手可劲儿造了。
最后提醒:做数据采集要讲武德,控制请求频率。配上ipipgo的智能限流功能,设置个合理的QPS参数,保准你安稳跑数据不翻车。

