Анализ входящего сетевого трафика с PhantomJS

Моя цель - подключиться к веб-сайту с помощью PhantomJS и распечатать входящий сетевой трафик в выходной файл в формате HAR.

Используя пример netsniff.js, я могу записывать весь сетевой трафик. при первой загрузке сайта, но я не знаю, как захватить дальнейший входящий трафик.

Например, если вы перейдете на главную страницу обмена стеками, сайты стека будут периодически меняться и новый файл .png будут получены (это можно увидеть, посмотрев на вкладку сети инструментов разработчика Chrome или что-то подобное для других браузеров). Мне нужен способ захвата HAR для всего этого на неопределенный срок. Как это возможно?


person rwolst    schedule 21.03.2014    source источник
comment
Я собирался сказать, что это так же просто, как удалить вызов Phantom.exit(), и он будет продолжать слушать. Но я провел несколько быстрых тестов с PhantomJS и SlimerJS, но ничего не прошел. Возможно, нужно что-то еще, или, возможно, веб-сайты, которые я выбрал, никогда не выполняют ни одного запроса Ajax ...   -  person Darren Cook    schedule 23.03.2014
comment
Глядя на netsniff.js, я не думаю, что удаление Phantom.exit() даст много пользы, потому что к тому времени, когда он достигнет этой точки в коде, программе больше нечего будет делать. Выход просто возвращает вас обратно в командную строку.   -  person rwolst    schedule 24.03.2014


Ответы (1)


Используя netsniff.js, добавьте оболочку setTimeout для создания HAR и его вывода.

setTimeout(function(){
    har = createHAR(page.address, page.title, page.startTime, page.resources);
    console.log(JSON.stringify(har, undefined, 4));
    phantom.exit();
},10000); /* pause 10 seconds to let things run after onLoad */
person Donald E. Foss    schedule 26.04.2015