Tenho arquivos de tráfego grandes que estou tentando analisar estatisticamente para verificar se um usuário clica em links em sites específicos.
É importante dizer que meus pacotes são classificados por fluxos (IP1 < = > IP2).
Minha primeira ideia foi procurar no conteúdo dos pacotes e procurar por hrefs e links, salvá-los em algum tipo de estrutura de dados com seus carimbos de tempo e depois repetir os pacotes para procurar pedidos em tempo próximo ao horário os links apareceram.
Algo parecido com o seguinte pseudo-código:
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 some url in the list and the
time is close enough, record it
O problema com esse código é que alguns links (importantes) são gerados dinamicamente enquanto a página está sendo carregada e não podem ser encontrados usando o método acima.
Outra ideia foi verificar o campo referenciador no cabeçalho http e procurar pacotes que sejam referenciados pelos sites relevantes. Esse método gera muitos falsos positivos por causa de quadros e objetos incorporados.
É importante mencionar que este não é o meu servidor, e minha intenção é fazer uma ferramenta para análise estatística do comportamento dos usuários (assim, não posso adicionar algum tipo de rastreador de cliques ao meu site).
Alguém tem uma idéia do que eu posso fazer para verificar se os usuários clicaram em links de acordo com o tráfego de rede?
Qualquer ajuda será apreciada!
Obrigado