Puppeteer 浏览器用户代理列表

我想从我的默认位置路径加载用户代理的随机列表,例如:“agents.json”而不是直接添加 1 个用户代理。


代理.json


["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36", "Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/79.0.3945.73 Mobile/15E148 Safari/604.1"]

我的代码:


const puppeteer = require('../core/puppeteer');

const referers = require('../core/referers.json');

const referers = require('../core/agents.json');

const viewVideosInBatch = async ({ targetUrls, durationInSeconds, port }) => {

  let browser;

  try {

    browser = await puppeteer.getBrowserInstance(port);

    const randomReferer = referers[Math.floor(Math.random() * referers.length)];

    const randomAgents = agents[Math.floor(Math.random() * agents.length)];

    const page = await browser.newPage();

    browser = await page.setUserAgent({ agents: randomAgents });

    page.setDefaultTimeout(PAGE_DEFAULT_TIMEOUT * 1000);

    page.on('error', handlePageCrash(page));

    page.on('pageerror', handlePageCrash(page));

    page.setExtraHTTPHeaders({ referer: randomReferer });


    await page.setViewport({

      width: 640,

      height: 480,

      deviceScaleFactor: 1,

    });

    const ipAddr = await getCurrentIP(page);

    const targetUrlsForAction = _take(_shuffle(targetUrls), VIEW_ACTION_COUNT);

    await watchVideosInSequence(page, ipAddr, targetUrlsForAction, durationInSeconds);

    await page.close();

  } catch (error) {

    logger.warn('Entire view action in a batch failed.');

    logger.debug(error);

  } finally {

    await browser.close();

  }

};


慕尼黑8549860
浏览 101回答 1
1回答

繁星coding

您似乎在设置 UA 时重新声明了浏览器,这是不应该的。此外,您不需要将其设置为对象:page.setUserAgent接受字符串:page.setUserAgent(userAgent)。await page.setUserAgent(randomAgent);会没事的。const browser = await puppeteer.getBrowserInstance(port);const randomReferer = referers[Math.floor(Math.random() * referers.length)];const randomAgent = agents[Math.floor(Math.random() * agents.length)]; // made it singular instead of pluralconst page = await browser.newPage();await page.setUserAgent(randomAgent); // like thispage.setDefaultTimeout(PAGE_DEFAULT_TIMEOUT * 1000);page.on('error', handlePageCrash(page));page.on('pageerror', handlePageCrash(page));page.setExtraHTTPHeaders({ referer: randomReferer });注意:我认为这只是你帖子中的一个错误,但你也有两个 const named referers,这个应该是agents:const referers = require('../core/agents.json');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript