Com o cURL é realmente fácil manipular cookies de ambos os modos.
curl www.target-url.com -c cookie.txt
em seguida, salvará um arquivo chamado cookie.txt. Mas você precisa fazer login, por isso necessidade de usar --data com argumentos como: curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt
. Depois de obter o cookie com registro de log, você pode enviá-lo com:
curl www.target-url.com/?user-page.php -b cookie.txt
Basta usar -c (--cookie) ou -b (--cookie-jar) para salvar e enviar.
Nota1: O uso do cURL CLI é muito mais fácil que o PHP e talvez mais rápido;)
Para salvar o conteúdo final, você pode facilmente adicionar > filename.html
ao seu comando cURL e salvar o código html completo.
Nota 2 sobre "cheio": você não pode renderizar javascript com cURL, basta obter o código-fonte.