如何在 Puppeteer 中使用代理(每页)

How to use proxy with Puppeteer (page per page)

提问人:Alexander Vzlomed 提问时间:11/25/2020 更新时间:12/7/2020 访问量:751

问:

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

该网站大约有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
JavaScript 节点.js 代理 HTML 解析

评论

0赞 John 11/25/2020
除非您使用某些扩展,否则您可能不能。只需为您想要的每个页面/代理启动另一个 chromium 实例即可。

答: 暂无答案