【问题标题】:How to use Proxy with puppeteer如何将代理与 puppeteer 一起使用
【发布时间】:2018-05-27 05:22:28
【问题描述】:

我是 puppeteer 和节点的新手,尝试使用 puppeteer 的代理来收集请求和响应,希望还有 websocket 通信,但到目前为止还没有任何工作..

我正在尝试以下代码:

const puppeteer = require('puppeteer');
const httpProxy = require('http-proxy');
const url       = require('url');

let runProxy = async ()=> {
     // raise a proxy and start collecting req.url/response.statusCode 
};

let  run = async () => {
    await runProxy();
    const browser = await puppeteer.launch({
        headless: false,
        args: ['--start-fullscreen',
            '--proxy-server=localhost:8096']
    });
    page = await browser.newPage();
    await page.setViewport({ width: 1920, height: 1080 });
    await page.goto('http://www.google.com',
        {waitUntil: 'networkidle2', timeout: 120000});
};

run(); 

我尝试了https://github.com/nodejitsu/node-http-proxy 的一些变体,但似乎没有什么对我有用,需要一些指导,谢谢

【问题讨论】:

    标签: puppeteer node-http-proxy


    【解决方案1】:

    尝试this,使用 https-proxy-agent 或 http-proxy-agent 来代理每个页面的请求:

    import {Job, Launcher, OnStart, PuppeteerUtil, PuppeteerWorkerFactory} from "../..";
    import {Page} from "puppeteer";
    
    class TestTask {
    
        @OnStart({
            urls: [
                "https://www.google.com",
                "https://www.baidu.com",
                "https://www.bilibili.com",
            ],
            workerFactory: PuppeteerWorkerFactory
        })
        async onStart(page: Page, job: Job) {
            await PuppeteerUtil.defaultViewPort(page);
            await PuppeteerUtil.useProxy(page, "http://127.0.0.1:2007");
            await page.goto(job.url);
            console.log(await page.evaluate(() => document.title));
        }
    
    }
    
    @Launcher({
        workplace: __dirname + "/workplace",
        tasks: [
            TestTask
        ],
        workerFactorys: [
            new PuppeteerWorkerFactory({
                headless: false,
                devtools: true
            })
        ]
    })
    class App {}
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2018-11-27
      • 2018-08-28
      • 2019-01-30
      相关资源
      最近更新 更多