首页 > 解决方案 > 如何在 Puppeteer 中使用代理(每页一页)

问题描述

美好的一天,需要从一个站点解析大量信息。

该网站有大约50万页。我决定为此使用 Puppeteer + Electron + 一些应用方法。但是我遇到了一个问题,用了一段时间,网站被IP封禁了一个小时(没有完全封禁,但是已经不能注册autoregue了,还有一个账号的限制)。我需要为每次点击链接更改我的 IP,或者至少在发生错误时独立注册这些代理的搜索。

在查看了 The puppeteer 文档之后,我意识到它只提供了一个机会 - 通过配置 (... args: ['--proxy-server= proxy ']) 并且仅在浏览器的开头放置代理。我决定使用插件(puppeteer-proxy、puppeteer-page-proxy 等),但无论是因为我的歪曲,还是其他一些问题,他们都固执地不想按我的需要工作(模块似乎已连接,并且没有给出错误,但是当它出现时

所以我需要模块在不重新启动 puppeteer 实例的情况下使用每页代理

    let scrape = async () => {
        let browser = await puppeteer.launch({headless: false})
        let page = await browser.newPage()

        await page.setRequestInterception(true);

        page.on('request', async (request) => {
            await proxyRequest({
                page,
                proxyUrl: *my own proxy*,
                request,
            }); // doesnt working :(
        });
//parsing

标签: javascriptnode.jsproxyelectronhtml-parsing

解决方案


推荐阅读