Compare um único site/sessões de navegação em diferentes momentos

Compare um único site/sessões de navegação em diferentes momentos

Preciso comparar sites únicos em diferentes momentos. ou seja, depois de alguns dias ou depois de fazer login. Não estou muito interessado nos tempos de resposta, mas mais no conteúdo real, como js, ​​imagens .... Tipo, o js que recebo hoje é igual ao de ontem. Existe uma maneira legal de despejá-los mais ou menos automaticamente e compará-los (com base no hash do arquivo)?

O melhor que consegui é usar um proxy com inspeção TLS, que deve entregar todos os arquivos baixados em texto não criptografado. Ou use arquivos har que também devem incluir todos os arquivos que compõem o site. Há algo que essas abordagens poderiam perder? Ou talvez existam maneiras alternativas de fazer isso?

Editar:

Preciso baixar coisas depois de fazer login e, em particular, preciso saber o que alguns scripts enviam/recebem em segundo plano. Portanto, preciso gravar uma sessão ativa e capturar todos os dados que passam pela rede em texto não criptografado.

Responder1

Se você precisar fazer login e realizar algumas ações, os downloads estáticos usando wgetferramentas semelhantes não serão suficientes. Neste caso, sugiro usarSelêniopara criar o script das ações necessárias e despejar todo o conteúdo do site junto com a resposta.

A ideia básica seria escrever um script na sua linguagem preferida (por exemplo, Python, Javascript, Ruby, ...) que use o driver web Selenium para controlar um navegador. O script executa as ações de login, clica em elementos, etc., e assim que receber uma resposta, você pode armazenar o corpo da página transferida. Um exemplo simples para Python édado aquie algum código que mostra o loginaqui.

Você teria que estender o código iterando por todas as <script>tags externas, baixando sua fonte ou, passando por todas <img>as tags, poderia baixar as imagens. Dessa forma, você pode facilmente diferenciar o código HTML principal e observar os nomes de arquivos individuais dos scripts/imagens chamados.

Outra possibilidade seria executar o script Selenium comBrowserMob, que pode exportar arquivos HAR. Desta forma você pode combinar a automação com o despejo de tudo automaticamente. Claro, então você tem que comparar os arquivos HAR, para os quais existem diferentes visualizadores. Observe que você terá que usar certificados Man-in-the-Middle com BrowserMob se quiser que ele funcione com sites HTTPS.

Responder2

Se você quiser baixar um site inteiro, consulte o artigo Melhor Estripador de Site Gratuito.

Este artigo contém análises de vários bons rippers: HTTrack, PageNest, wget e muito mais. Eu usei o HTTrack no passado e funcionou para mim.

Para voltar mais no tempo, você poderia tentar o Máquina Wayback de Arquivo da Internet que tenta arquivar toda a Web. Ele tira fotos regularmente dos sites, então você encontrará várias versões para comparar.

Para capturar tráfego, você precisará de um monitor de tráfego da web. Posso recomendar dois excelentes produtos: Wireshark e da Microsoft Telerik Violinista.

informação relacionada