Como criar um espelho local de um site com um popup de confirmação?

1

Eu preciso de uma cópia local de um site que exija confirmação da idade antes de exibir o conteúdo. Não há formulários complexos, apenas uma caixa de seleção e um botão "sim, sou adulto". Eu tentei usar wget mas sem sucesso, ele só baixa essa tela inicial e nada mais. O Httrack também falhou.

Acredito que as informações de confirmação estão armazenadas em um arquivo de cookie e acho que descobri qual delas é. Então copiei-o usando a extensão de exportação de cookie.txt e salvei-o em .txt e tentou wget mais uma vez com a opção --load-cookies , mas ainda não funciona.

Como faço o download de um site como este? Estou usando indevidamente wget ou talvez exista uma maneira melhor de fazer isso?

EDITAR:

OK, DownThemAll parece fazer o trabalho. Finalmente, eu consegui com wget também, usando

wget -mpkrl 0 http://example.com

talvez -rl 0 foi o que eu estava perdendo anteriormente.

Após investigar a fonte da página, descobri que não há recarregamento / redirecionamento envolvido, subpáginas são baixadas corretamente e a tela de confirmação é apenas iframe na parte superior da página, para que eu possa me livrar dele com um script simples.

(Neste caso em particular, mexer com cookies, eventualmente, não foi necessário, então eu não estou postando isso como uma resposta.)

    
por machaerus 29.05.2013 / 03:15

1 resposta

1

Depende de como o site é configurado, nem todos usam cookies para isso - alguns podem usar coisas como php-sessions, e eu não sei se o wget pode lidar com isso diretamente. Se você conseguir encontrar o id da sessão (essa parte geralmente fica oculta na linha de endereço pelo navegador ou usada apenas uma vez quando você faz o login), você pode usar isso (a URL + id da sessão) como start-url para wget.

Voltar para cookies ... No entanto, precisei fazer coisas semelhantes, então algumas dicas ...

Alguns sites usam cookies temporariamente, ou seja. durar apenas esta sessão. Estes não são armazenados no banco de dados cookie.txt / cookies, então nem todos os exportadores de cookies os exportarão - se exportar do arquivo / banco de dados, então não ... se exportar do banco de dados navegador "memória" (em um site de base), então sim. Personally, I've found the "cookie.txt export" extension for the Chrome-browser the best, as it saves *all* cookies (including temps) from just the active tab. (bem, na verdade mostra os cookies como texto, você deve marcá-lo e copiá-lo e salvá-lo para o arquivo) Para um login; verificar "Remember Me", muitas vezes, transformará um cookie temporário não armazenado no cookie-file / database em um permanente, para que possa ser facilmente exportado (provavelmente não ajudará na confirmação da idade).

Depois de armazenar o arquivo cookies.txt, pode ser uma boa ideia editá-lo um pouco - aumente o tempo de expiração e talvez edite os cookies temporários para os permanentes (pense que é apenas um "switch") . Você também pode excluir cookies não relacionados (por exemplo, anúncios e outros).

Manter a janela do navegador aberta enquanto o wget funciona - e talvez atualizar a página ou navegar um pouco de vez em quando - garantirá que sua sessão não seja expirada antes da finalização do wget.

Existem também extensões para navegadores ... Eu gosto de "Down-them-all" para o Firefox; que permitem baixar o conteúdo (embora mais interativamente do que o wget). Você obtém uma lista de links da página atual, e apenas verifica os links e / ou imagens que deseja salvar - e, opcionalmente, quantos níveis você quer seguir em profundidade. Se você fizer o login pela primeira vez e / ou verificar sua idade antes de iniciá-lo, o Down-them-all fará o login e o check-in juntamente com o seu navegador, e poderá fazer o download de todos os downloads manuais. Brinque com os padrões de renomeação e numeração, pois acho que ele armazenará todas as páginas de forma plana e, de outra forma, poderá haver conflito de nomes (no entanto, ele perguntará antes de sobrescrever).

Boa sorte!

    
por 29.05.2013 / 04:04

Tags