Buscando prestados JavaScript de uma página (pixel Omniture)?
-
06-07-2019 - |
Pergunta
Eu tenho algum código (aliás, é por Omniture) que torna um pixel 1x1 com base em algumas variáveis ??de objeto JavaScript I definidos no código fonte da página. O JavaScript eventualmente, cria uma img baseado no código de script, mas o img src não é embutida no HTML. Como posso descobrir o que o img src é, dada a URL de uma página? Se eu simplesmente pegar a página, Vou pegar o JavaScript pré-renderizados.
Editar
Por exemplo, digamos que eu tenho esse código para StackOverflow.html :
<html>
<script type="text/javascript">
a = 2
document.write(a)
</script>
</html>
Como posso buscar StackOverflow.html e de alguma forma obter o valor "2" em vez de todo o meu código de script?
Obrigado!
Solução 4
Eu acho que a melhor maneira de fazer isso é com Selênio, em seguida, injetar um pouco de javascript na página para uma ou outra mina do DOM, ou recuperar o valor da janela mundial se for o caso.
Outras dicas
Se você está tentando obter o valor de a
depois que o script foi executado no lado do cliente (ou seja, no navegador), você deve apenas ser capaz de recuperá-lo de uma forma normal.
Tome a seguinte configuração:
index.html
Este arquivo é a sua página web. Ele contém algum conteúdo, um script de rastreamento que insere uma imagem e seu próprio script.
<!doctype html>
<html>
<head><title>My Page</title></head>
<body>
<p>My Content<p>
<!-- Start tracking code -->
<script src="tracking.js"></script>
<!-- End tracking code -->
<script src="mycode.js"></script>
</body>
</html>
tracking.js
Este é o código de acompanhamento, presumivelmente fornecido pela empresa de rastreamento.
var id = '1234foobar';
var visitorUserAgent = encodeURIComponent(navigator.userAgent);
document.write(
'<img src="http://tracking.com/1x1.gif?id='
+ id + '&ua=' + visitorUserAgent + '" />'
);
mycode.js
Se você sabe quais variáveis ??(se houver) do código de acompanhamento cria, você deve ser capaz de recuperar-se ou pelo menos o atributo src
da tag img
as variáveis ??que o código de acompanhamento cria.
var imgs = document.getElementsByTagName('img');
alert([id, visitorUserAgent, imgs[imgs.length - 1].src].join('\n'));
Editar:
para responder a sua pergunta atualizado:
parece-me que o seu problema é descobrir o que a página vai ficar depois da JS é executado nele.
Não há nenhuma maneira simples de fazer isso que lhe dará 100% de resultados precisos, para que você vai precisar para realmente executar o javascript e ver quais são os resultados, que é realmente não-fácil quando você não é em um navegador.
Agora você tem várias opções. Voc no mencionar qual ferramenta você está usando para pegar a página, doente supor que você está usando um costume construído raspador. Se você quiser continuar usando o scarper você pode:
- olhar em usar rinoceronte para avaliar a JS. Não tenho a certeza que isso vai lhe dar, você pode pesquisar isso.
- se document.write é a única chamar você se preocupa, você pode analisar as variáveis ??que utiliza, e, em seguida, tentar avaliar seus valores. isso exigirá escrever um parser, provavelmente difícil.
- melhor coisa que você pode fazer é usar uma ferramenta de teste funcional, como telúrio ou selênio. Isto lhe dará acesso à página onde a JS já foi executado, e você pode usar a minha resposta original para obter o valor que você precisa.
Gostaria de usar o painel de líquido no firebug e filtrar por pedidos de imagem. Você verá que sair do momento em que é criado. Além disso, se você está fazendo de análise solicitações, tente instalar o Omnibug firebug plugin para rastrear e pausa solicitações para baixo.