【问题标题】:Use different ip addresses in puppeteer requests在 puppeteer 请求中使用不同的 IP 地址
【发布时间】:2019-04-19 09:45:34
【问题描述】:

我的服务器中有多个 ip 接口,我找不到如何强制 puppeteer 在其请求中使用它们

我正在使用节点 v10.15.0 和 puppeteer 1.11.0

【问题讨论】:

  • 如何在 Chrome 应用中强制使用 IP 接口?
  • @hardkoded 我不确定我是否理解你的问题
  • Puppeteer 与 Chrome 浏览器实例对话。如果您无法在 Chrome 中强制使用界面,您将无法使用 Puppeteer 执行此操作。如果你能在 Chrome 中做到这一点,我们可以看看这是否可行。
  • 你有没有让这个工作。我有同样的问题。
  • @Jamesed 不,我没有找到解决方案,所以我在没有它的情况下工作。

标签: javascript node.js web-scraping chromium puppeteer


【解决方案1】:

您可以在启动浏览器时使用标志 --netifs-to-ignore 来指定 Chrome 应忽略哪些接口。引用自List of Chromium Command Line Switches

--netifs-to-ignore:要忽略的网络接口列表。被忽略的接口不会用于网络连接

您可以在启动浏览器时使用这样的参数:

const browser = await puppeteer.launch({
    args: ['--netifs-to-ignore=INTERFACE_TO_IGNORE']
});

【讨论】:

  • 我试图让它工作,但它似乎并没有忽略指定的接口。我假设 INTERFACE_TO_IGNORE 接口名称是否正确?我找不到如何使用它的好例子。例如 --netifs-to-ignore=eth0
  • @Jamesed 是的,我想这就是如何使用它。但是我自己从来没用过,只是在flag列表里找到的。对不起。
  • 谢谢。一段时间后,我意识到特定标志仅适用于 linux 而不是 mac
  • 我认为这行不通。我在这里提交了一个错误报告github.com/puppeteer/puppeteer/issues/6744
【解决方案2】:

也许这会有所帮助。可以看完整代码here

'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();
})();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2015-06-21
    • 2019-02-01
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多