Puppeteer 浏览器引用列表

Tra*_*ran 3 javascript referer node.js puppeteer

我想referers从我的默认位置路径加载随机列表,例如:'referers.txt'而不是直接添加“facebook url 作为引用者。

我的代码:

browser = await puppeteer.getBrowserInstance(port);
const page = await browser.newPage();
page.setDefaultTimeout(PAGE_DEFAULT_TIMEOUT * 1000);
page.on('error', handlePageCrash(page));
page.on('pageerror', handlePageCrash(page));
page.setExtraHTTPHeaders({ referer: 'https://www.facebook.com/' });
Run Code Online (Sandbox Code Playgroud)

the*_*ton 5

您应该选择JSON来将引用站点值列表存储在数组中,而不是使用 txt 。

引用者.json

["https://www.google.com", "https://www.facebook.com", "https://www.instagram.com"]
Run Code Online (Sandbox Code Playgroud)

然后您将能够通过以下方式从数组中选择一个随机元素:array[randomIndex]。要为数组的长度生成随机数,您有多种可能性,但Math.floor(Math.random() * array.length)只有其中一种。

引用者.js

const puppeteer = require('puppeteer')
const referers = require('./referers.json')

async function fn() {
  const randomReferer = referers[Math.floor(Math.random() * referers.length)]
  console.log(referers)
  console.log(randomReferer)
  const browser = await puppeteer.launch({ headless: false, devtools: true })
  const page = await browser.newPage()

  page.setExtraHTTPHeaders({ referer: randomReferer })

  await page.goto('https://www.instagram.com/')
}
fn()
Run Code Online (Sandbox Code Playgroud)

输出示例:

[
  'https://www.google.com',
  'https://www.facebook.com',
  'https://www.instagram.com'
]
https://www.facebook.com
Run Code Online (Sandbox Code Playgroud)