Показать сообщение отдельно
  #1 (permalink)  
Старый 08.04.2023, 20:51
QuZ QuZ вне форума
Новичок на форуме
Отправить личное сообщение для QuZ Посмотреть профиль Найти все сообщения от QuZ
 
Регистрация: 03.04.2023
Сообщений: 8

JS и puppeteer. Мониторинг и управление POST\GET запросами
Добрый день. Мне необходимо написать мониторинг сетевого трафика на JS с помощью puppeteer.
Скрипт работает в режиме браузера, и должен уметь управлять трафиком в режиме реального времени.
В данном скрипте должны быть реализованы следующие функции.
1) Чтение пост запросов. Пусть у нас будет массив из URL адресов, которые надо проверять. При поступлении post запроса, делаем проверку, принадлежит ли его URL заданному массиву, если да, тогда мы создаем массив, в который упаковываем - URL, Заголовк, Ответ и выводим в консоль.лог.
2) Отправка пост запросов от лица браузера. Он должен принимать массив вида (пункт1) и отправлять его, отслеживывать ответ и выводить в массиве вида (пункт 1) в консоль.лог
3) Обрабатывать гет запросы. (Правильно запрета) Примеры - если подгружается .png, тогда мы блокируем этот запрос, или если тип content-type - музыка\мп3, или url содержит ("_offer_")
4) Обрабатывать гет запросы. Правило разрешения (Пример - Если подгружается что-то с ссылки ...), тогда пропускаем.

5) Подмена пост запроса (На данный момент эта функция не актуальная, не знаю, пригодится ли). Было бы хорошо услышать комментарии о возможности реализации. Необходимо менять тело запроса. По каким-то критериям перехватывать запрос, идущий от браузера, чтобы можно было на основе каких-то правил, поменять это тело запроса. Ответ аналогично пункту 1 записываем в массив, только добавив в него первоначальный запрос.

П.с. Массив делаем ассциативный.

Так-же понадобится решить вопрос с куками, разрешить браузеру их принимать, записать в файл и при начале работы - использовать их (прочесть)

Дальнешие доработки - уже будем обсуждать после использования и сбора данных с помощью этого скрипта.
Спасибо.

Последний раз редактировалось QuZ, 08.04.2023 в 20:53.
Ответить с цитированием