Как узнать, перешел ли пользователь по ссылке, используя свой сетевой трафик
У меня есть большие файлы трафика, которые я пытаюсь проанализировать, чтобы получить статистические характеристики пользователей.
Одна из функций, которую я хотел бы извлечь, - это ссылки, нажимаемые на определенных сайтах (для примера - нажатие на всплывающие окна и т. Д.)
Моей первой идеей было просмотреть содержимое пакетов и найти hrefs
и ссылки, сохраните их все в какой-то структуре данных со своими отметками времени, а затем снова выполните итерации по пакетам для поиска запросов в любое время, близкое к моменту появления ссылок.
Что-то вроде следующего псевдокода (в следующем коде пакеты сортируются по потокам (поток: IP1 <=> IP2)):
for each packet in each flow:
search for "href" or "http://" or "https://"
save the links with their timestamp
for each packet in each flow:
if it's an HTTP request and its URL matches any URL in the list and the
time is close enough, record it
Проблема с этим кодом заключается в том, что некоторые ссылки генерируются динамически во время загрузки страницы (с использованием JavaScript или около того) и не могут быть найдены с помощью вышеуказанного метода.
Я также попытался проверить поле реферера в заголовке HTTP и найти пакеты, на которые ссылались соответствующие сайты. Этот метод генерирует много ложных срабатываний из-за iframes и встроенных объектов.
Важно отметить, что это не мой сервер, и я намерен создать инструмент для статистического анализа поведения пользователей (таким образом, я не могу добавить какой-либо трекер кликов на свой сайт).
У кого-нибудь есть идеи, что я могу сделать, чтобы проверить, нажимали ли пользователи ссылки в соответствии с их сетевым трафиком?
Любая помощь будет оценена!
Спасибо