推荐:Python全栈教程!花了29980买的从入门到精通课程,分享给大家

我们知道,在写爬虫的过程中,如果总是使用同一个 IP,很容易就会被网站识别并封禁,所以需要使用代理 IP 并经常更换。
但如果你在网上搜索 Puppeteer 如何更换代理 IP,你会发现,网上的解决方案一般是这样写的:
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({
args: [ '--proxy-server=123.45.67.89:8888' ]
});
const page = await browser.newPage();
await page.goto('http://httpbin.org/ip');
await browser.close();
})();
这种写法有一个问题,如果你要更换 IP,必须重启爬虫。那么有没有办法不重启爬虫也能更换代理 IP 呢?
方法有,并且有两个。
隧道代理
对一些网站来说,只要每次访问的 IP 不一样就可以避免被封禁,那么我们可以使用隧道代理。隧道代理供应商会给我们提供一个唯一的域名和端口。我们把它设置为爬虫的代理就可以了。代理供应商会在后端自动给每一次请求更换 IP,不用我们来操心。
我们使用青果云[1]的隧道代理来做演示。它可以免费试用2小时。我获取到的代理 IP 地址为:http://D5A9