首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过puppeteerOptions在puppeteer-cluster中传递参数的正确方法

通过puppeteerOptions在puppeteer-cluster中传递参数的正确方法
EN

Stack Overflow用户
提问于 2021-03-20 02:24:08
回答 1查看 391关注 0票数 1

我正在尝试在我的代码中使用args来使用我拥有的代理服务。如果我完全删除了args,那么运行正常,但是如果我把它们放在里面,我会得到一个错误: Error: Unable to restart chrome。我检查了多个示例,并将其复制到我的代码中,但似乎失败了。关于如何正确实现这一点有什么想法吗?

代码:

代码语言:javascript
运行
复制
const { Cluster } = require('puppeteer-cluster');
const vanillaPuppeteer = require('puppeteer');
const { addExtra } = require('puppeteer-extra');
const Stealth = require('puppeteer-extra-plugin-stealth')


async function main() {
  // Create a custom puppeteer-extra instance using `addExtra`,
  // so we could create additional ones with different plugin config.
  const puppeteer = addExtra(vanillaPuppeteer)
  puppeteer.use(Stealth())

  let proxy_server = 'proxy.soax.com:9000';
  let user = 'some_user_name';
  let pass = 'some_password';

  // Launch cluster with puppeteer-extra
  const cluster = await Cluster.launch({
    puppeteer,
    puppeteerOptions: {
        headless: false,
        args: ['--proxy-server=' + proxy_server,
               '--single-process', 
               '--no-zygote', 
               '--no-sandbox'],
        sameDomainDelay: 1000,
        retryDelay: 3000,
        workerCreationDelay: 3000},
    maxConcurrency: 2,
    concurrency: Cluster.CONCURRENCY_CONTEXT,
    monitor: false,
    skipDuplicateUrls: true
  })

  // Define task handler
  await cluster.task(async ({ page, data: url }) => {
    await page.authenticate({
        username: user,
        password: pass,
    });  
    await page.goto(url)

    const { hostname } = new URL(url)

    console.log(`checking on ${hostname}`)

    await page.screenshot({ path: `${hostname}.png`, fullPage: true })
  })

  // Queue any number of tasks
  cluster.queue('https://whatismyipaddress.com/')

  await cluster.idle()
  await cluster.close()
  console.log(`All done`)
}

main().catch(console.warn)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-20 02:55:18

我尝试了一下,发现通过删除arg --single-process,它工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66713742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档