Отключение расширений в PuppeteerSharp

#c# #puppeteer #puppeteer-sharp

#c# #кукловод #puppeteer-sharp

Вопрос:

Мне нужно отключить все расширения в браузере Chrome с помощью Puppeteer. Я использовал --disable-extensions аргумент, подобный приведенному ниже.

 var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
   Headless = true,
   ExecutablePath = ChromePath,
   IgnoreHTTPSErrors = true,
   Args = new[] { "--disable-extensions" },
});
 

Когда я пытаюсь загрузить URL-адрес файла (например https://winaero.com/downloads/Win7Games4Win10_8_81_v2.zip ), Internet Download Manager появится всплывающее окно, чтобы начать загрузку. Я использую безголовый режим, чтобы скрыть все, и я использовал --disable-extensions для отключения любого расширения, подобного Internet Download Manager .
Почему это не работает? в чем проблема?

Ответ №1:

Не уверен, что вы можете отключить встроенный менеджер загрузок с --disable-extensions помощью.

Другой подход, если ZIP's вы просто хотите остановиться, — вставить этот код в:-

 await page.setRequestInterception(true);
page.on('request', request => {
    if (request.url().endsWith('.zip'))
        request.abort();
    else
      request.continue();
});
 

Вы также можете указать URL-адрес в нижнем регистре, чтобы также перехватить .ZIP abnd и т. Zip Д

Также в вашем goto вам нужно будет прервать запрос, например

   await page
        .goto("https://winaero.com/downloads/Win7Games4Win10_8_81_v2.zip")
        .catch(r => r.abort);
 

Комментарии:

1. как IDM захватывает ссылки из Chrome? как Chrome позволяет передавать URL-адрес в IDM?

2. я не уверен, что понимаю вас. Когда вы вызываете page.goto это ZIP-файл, он загружает его 🙂

3.Я говорю о сторонних программах, таких как IDM internetdownloadmanager.com . Как они захватывают ссылки и URL-адреса из Chrome, так что решайте, загружать или нет? Надеюсь, я понял 🙂

4. Ах, я понимаю, в этом случае вам нужно будет перехватить запрос и прервать его, чтобы IDM вообще не сработал. IDM является внешней программой и, вероятно, перехватывает запросы вне браузера. То есть он независимо отслеживает сетевые запросы