web-dev-qa-db-fra.com

Comment utiliser un proxy dans Marionnettiste et Chrome sans tête?

Veuillez me dire comment utiliser correctement un proxy avec un marionnettiste et un Chrome sans tête. Mon option ne fonctionne pas.

const puppeteer = require('puppeteer');
(async () => {
  const argv = require('minimist')(process.argv.slice(2));

  const browser = await puppeteer.launch({args: ["--proxy-server =${argv.proxy}","--no-sandbox", "--disable-setuid-sandbox"]});
  const page = await browser.newPage();

  await page.setJavaScriptEnabled(false);
  await page.setUserAgent(argv.agent);
  await page.setDefaultNavigationTimeout(20000);
  try{
  await page.goto(argv.page);

  const bodyHTML = await page.evaluate(() => new XMLSerializer().serializeToString(document))
  body = bodyHTML.replace(/\r|\n/g, '');
  console.log(body);
}catch(e){
        console.log(e);
}
  await browser.close();
})();
12
Irina Kazhamiakina

Vous pouvez trouver un exemple de proxy sur ici

'use strict';

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch({
    // Launch chromium using a proxy server on port 9876.
    // More on proxying:
    //    https://www.chromium.org/developers/design-documents/network-settings
    args: [ '--proxy-server=127.0.0.1:9876' ]
  });
  const page = await browser.newPage();
  await page.goto('https://google.com');
  await browser.close();
})();
4
ChuongTran

Vous pouvez utiliser https://github.com/gajus/puppeteer-proxy pour définir un proxy pour la page entière ou pour des demandes spécifiques uniquement, par exemple.

import puppeteer from 'puppeteer';
import {
  createPageProxy,
} from 'puppeteer-proxy';

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  const pageProxy = createPageProxy({
    page,
    proxyUrl: 'http://127.0.0.1:3000',
  });

  await page.setRequestInterception(true);

  page.once('request', async (request) => {
    await pageProxy.proxyRequest(request);
  });

  await page.goto('https://example.com');
})();

Pour ignorer le proxy, appelez simplement request.continue() conditionnellement.

L'utilisation de puppeteer-proxyPage peut avoir plusieurs proxys.

0
Gajus