为了账号安全,请及时绑定邮箱和手机立即绑定

Puppeteer 浏览器用户代理列表

Puppeteer 浏览器用户代理列表

慕尼黑8549860 2023-03-18 17:08:37
我想从我的默认位置路径加载用户代理的随机列表,例如:“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();  }};
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您似乎在设置 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 plural

const page = await browser.newPage();

await page.setUserAgent(randomAgent); // like this

page.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');


查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信