如何在 Playwright 中为多个主机应用 --unsafely-treat-insecure-origin-as-secure

问题描述 投票:0回答:1

我目前正在使用 Playwright 和 Firefox 开发一个网络抓取应用程序,我需要与多个不安全的 .onion 源(通过 HTTP 提供)进行交互,就好像它们是安全的一样。我的目标是避免为每个源启动新的浏览器实例以节省资源。相反,我希望启动一个浏览器实例并在其中创建多个上下文或页面,将每个不安全的来源视为安全。这是我当前方法的片段:

await firefox.launch({
    proxy: { server: 'socks5://127.0.0.1:9050' },
    args: [`--unsafely-treat-insecure-origin-as-secure=${host.slug}`],
    headless: true,
});

--unsafely-treat-insecure-origin-as-secure
参数适用于单一来源(
host.slug
),但我有一个需要将其视为安全的 URL 数据库,并且我正在寻找一种方法将此设置应用于单个浏览器实例中的多个来源。

  1. 我考虑为每个 URL 启动一个浏览器实例,并带有针对每个 URL 定制的

    --unsafely-treat-insecure-origin-as-secure
    标志。然而,这种方法资源效率不高(当前实现)。

  2. 我考虑为每个 URL 创建一个新的上下文,但我找不到在上下文级别而不是在浏览器启动级别应用

    --unsafely-treat-insecure-origin-as-secure
    设置的方法。

Playwright 中是否有一种方法可以启动单个浏览器实例并将其配置为将多个特定的不安全来源视为安全,而无需为每个来源启动新的浏览器?理想情况下,我正在寻找一种解决方案,允许我指定在单个浏览器实例中被视为安全的源列表,或者在处理源时动态地将源添加到此列表。

任何关于如何通过 Playwright 实现这一目标的指导、解决方法或见解将不胜感激。

javascript http web-scraping firefox playwright
1个回答
0
投票

一种方法是在启动参数中连接多个源: 您可以尝试在 --unsafely-treat-insecure-origin-as-secure 参数中连接多个源。这是一种解决方法,并且可能会受到限制,具体取决于您可以传递的 URL 数量以及 Playwright 处理它们的方式。

const origins = ['origin1.com', 'origin2.com', ...]; // Array of your origins
const originsString = origins.join(',');

await firefox.launch({
    proxy: { server: 'socks5://127.0.0.1:9050' },
    args: [`--unsafely-treat-insecure-origin-as-secure=${originsString}`],
    headless: true,
});
© www.soinside.com 2019 - 2024. All rights reserved.