Algumas partes da wikipedia aparecem de maneira diferente quando você está conectado. Gostaria de wget páginas de usuário para que apareçam como se eu estivesse conectado.
Existe uma maneira de eu wget páginas de usuário como esta
http://en.wikipedia.org/wiki/User:A
esta é a página de login:
http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3
Respostas:
A maneira mais fácil: faça login no seu navegador e dê os cookies para o wget
Método mais fácil: em geral, você precisa fornecer ao wget ou enrolar os cookies (conectados) de um site específico para que eles busquem páginas como se você estivesse conectado .
Se você estiver usando o Firefox, é fácil fazer isso através do complemento Export Cookies . Instale o complemento e:
cookies.txt
arquivo (você pode alterar o nome do arquivo / destino).Abra um terminal e use
wget
com a--load-cookies=FILENAME
opção, por exemplocurl --cookie cookies.txt ...
Tentarei atualizar esta resposta para usuários do Chrome / Chromium.
Da maneira mais difícil: use curl (de preferência) ou wget para gerenciar toda a sessão
--cookie-jar
ou wget com as--save-cookies --keep-session-cookies
opções, junto com o método HTTP / S PUT para efetuar login em um site, salvar os cookies de login e usá-los para simule um navegador.fonte
grep mydomain cookies.txt > mydomain-cookies.txt
Outra solução fácil que funcionou para mim sem instalar nada extra:
Isso lhe dará um comando que você pode colar diretamente no seu shell, que possui todas as suas credenciais de cookie, por exemplo
Você pode modificar o URL no comando para buscar o que quiser.
fonte
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.
fonte
-X
parâmetro significa "do post", mas o uso--data=xxx
-X
está implícito, para que você possa removê-lo com segurança.-b
éread cookie
Para aqueles que ainda estão interessados nessas perguntas, há uma extensão do Chrome muito útil chamada CurlWGet que permite gerar uma
wget
/curl
solicitação com medidas de autenticação etc. com apenas um clique. Para instalar esta extensão, siga os passos abaixo:Desfrutar!
fonte
A postagem do blog Wget com Firefox Cookies mostra como acessar o arquivo de dados sqlite no qual o Firefox armazena seus cookies. Dessa forma, não é necessário exportar manualmente os cookies para usar com o wget. Um comentário sugere que ele não funciona com cookies de sessão, mas funcionou bem nos sites com os quais eu tentei.
fonte
dê uma olhada no cliget para Firefox.
Quando você está prestes a baixar, na caixa de diálogo final de download, você tem a opção de copiar o download como linha de comando de ondulação para a área de transferência.
fonte
Você já tentou isso?
fonte
Tente algo como:
Veja também este link:
Como baixar esta página da web com o wget?
fonte
> filename.html
para salvar a saída no diretório atual ou colocar um caminho de arquivo completo. Isso se aplica aos sistemas Linux e Windows.Para logins baseados em sites mais complicados, considere também usar um script Python e algum módulo que imite um navegador, como http://wwwsearch.sourceforge.net/mechanize/ em vez de
curl
ouwget
.Dessa forma, os cookies de sessão são manipulados automaticamente, você pode seguir os links e preencher os formulários de login e, assim, "guiar" você mesmo pelo processo de login como se estivesse usando seu navegador.
fonte