Как я могу контролировать сетевую активность с помощью nodejs (puppeteer) - PullRequest
1 голос
/ 02 апреля 2019

Я создаю приложение, используя Nodejs и firefox-puppeteer, и пытаюсь отслеживать сетевой трафик, чтобы я мог читать заголовки и, если заголовки совпадают с моим Regex, получить сообщение, напечатанное на моем терминале.

Iпопробовал кукловода: page.setRequestInterception(value) но это просто остановит приложение в тот момент, когда он найдет заголовок, и программа сломается

Любое предложение приветствуется. Заранее спасибо

1 Ответ

0 голосов
/ 02 апреля 2019

Вам не нужно включать перехват запросов через page.setRequestInterception, чтобы прослушивать сетевую активность (возможно, вы захотите проверить request.continue для получения дополнительной информации по этой теме).

Чтобы просто прослушивать сетевые ответы, вы можете прослушивать событие response.Вот пример кода:

const puppeteer = require('puppeteer');

const textRegex = /(javascript|html)/; // example regex

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();

    page.on('response', (response) => {
        const headers = response.headers();

        // example test: check if content-type contains javascript or html
        const contentType = headers['content-type'];
        if (textRegex.test(contentType)) {
            console.log(response.url());
        }
    });
    await page.goto(`...`);

    await page.close();
    await browser.close();
})();

В этом примере прослушиваются ответы и выводятся все URL-адреса, содержащие строку javascript или html в заголовке Content-Type.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...