手把手教你用Puppeteer玩转代理IP
搞爬虫的老铁应该都遇到过这种尴尬:明明代码写得溜,结果网站突然给你来个IP封禁。这时候要是会用代理IP,就跟打游戏开外挂似的,瞬间满血复活。今天咱们就唠唠怎么用Puppeteer搭配天启代理的优质IP资源,把动态IP轮换玩出花来。
给Puppeteer穿隐身衣
先说最基本的代理设置。Puppeteer启动浏览器时,在launch参数里加个代理配置就完事:
const browser = await puppeteer.launch({ args: ['--proxy-server=http://用户名:密码@ip:端口'] });
这里要重点说下天启代理的认证方式特别省事,他们家的代理支持账号密码认证和IP白名单两种方式。用账号密码的话直接填在参数里就行,要是用白名单认证,提前在后台绑定服务器IP就能免密使用。
动态换IP的骚操作
静态代理用久了还是会被发现,这时候就得玩动态轮换了。推荐两个实用套路:
方案一:每次开新页面换IP在创建新页面时,通过API获取新IP:
const getNewIP = async () => { return await axios.get('天启代理的API接口'); } const page = await browser.newPage(); await page.authenticate({ username: 新IP用户名, password: 新IP密码 });方案二:定时器自动刷新
设置个定时任务,每隔5-10分钟自动更换IP。记得要配合清理cookies和localStorage,不然换IP不彻底:
setInterval(async () => { await page.deleteCookie(...cookies); await page.evaluate(() => localStorage.clear()); // 重新认证新IP }, 300000);
反反爬三板斧
光换IP还不够,得配合些障眼法:
1. 每次访问随机等个3-8秒,别跟机器似的秒点 2. 用天启代理的住宅IP资源,这种IP看着更像真人 3. 随机切换User-Agent,别老用同一个浏览器指纹常见问题排雷指南
Q:代理连不上咋整?
A:先检查IP格式对不对,天启代理的IP都是标准格式。要是用socks5协议记得在启动参数加--proxy-type=socks5
Q:怎么知道IP有没有被拉黑?
A:在page.goto之后加个页面内容检测,如果遇到验证码页面就自动触发换IP程序。天启代理的后台还能查IP健康状态,这个功能贼实用
Q:延迟太高影响效率怎么办?
A:建议用天启代理的独享IP池,他们家自建机房的延迟能控制在10ms以内,实测比公共代理快不是一星半点
为什么选天启代理
用过七八家代理服务商,最后长期用天启代理就三个原因:第一是IP存活率高,基本不会遇到失效IP;第二是响应速度快,接口秒级返回新IP;第三是协议支持全,http/https/socks5都能搞定。特别是他们家的城市级IP定位,做地域性数据采集时特别给力。
最后给新手提个醒:代理IP不是万能药,得配合合理的访问策略才能发挥最大效果。建议先用天启代理的免费资源练手,摸清目标网站的反爬规律再上真格的数据采集。记住,做爬虫既要胆大心细,又要遵纪守法,千万别踩红线。