Rastreando a origem gerada da página

1

Estou tentando rastrear a origem do site de um artigo de pesquisa, explorando um redirecionamento de é o identificador de objeto de documento (DOI):

doi=10.1006/jfin.1996.0208
url=$(curl -L -s -w %{url_effective} "http://dx.doi.org/"$doi -o /dev/null)
curl -L --referer ";auto" $url > test.htm --dump-header /dev/null

O arquivo / fonte, no entanto, parece diferente do que vejo quando abro o link no navegador. Por exemplo, a lista de referências é limitada a 20 entradas e, em vez de mostrar links para esses itens, eu vejo apenas "Carregando".

Obviamente, a fonte é diferente do que o navegador (FF) me mostra. De fato, quando eu dou uma olhada no arquivo de código-fonte do site usando este bookmarklet para ver a fonte gerada, recebo o arquivo fonte completo que eu quero ter.

Agora existe uma maneira de rastrear a origem gerada de uma página da web? Dando uma olhada no este manual detalhado, não encontrei nada relacionado à fonte gerada.

    
por MERose 17.06.2015 / 15:10

1 resposta

1

Curl só faz a página "principal". Se houver algum conteúdo na página carregado por JavaScript, você não obterá isso em sua captura / rastreamento quando usar curl .

A melhor maneira de obter páginas "completas" que eu encontrei é usar o selênio e orientá-lo a partir de algum script (eu uso python para fazer isso). Completa é relativa aqui, porque não há garantia sempre de que o JavaScript é feito carregando.

Por exemplo em um python virtualenv, execute:

pip install selenium
python dl.py  http://unix.stackexchange.com/q/210268/33055 /var/tmp/page.html 5

com dl.py :

import sys
import time
from selenium import webdriver

url, file_name, seconds = sys.argv[1:4]
browser = webdriver.Firefox()
try:
    browser.get(url)
    time.sleep(int(seconds))
    with open(file_name, 'w') as fp:
        fp.write(browser.find_element_by_xpath('html').get_attribute(
            "outerHTML").encode('utf-8'))
finally:
    browser.close()
    
por 17.06.2015 / 15:38

Tags