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()