Roubar cookies de um navegador da Web é uma coisa normal quando você está escrevendo um script de raspagem e não quer lidar com alguma autenticação complexa de site no seu script.
Tradicionalmente, os navegadores armazenavam seus cookies em um formato de texto simples herdado pelo Netscape, o formato cookies.txt
. O Wget tem uma opção --load-cookies
para carregar um arquivo como isto.
As versões modernas do Firefox e do Chrome não usam mais esse formato, mas sim um banco de dados SQLite. Existem extensões para fazer com que eles despejem um arquivo cookies.txt
, como o Exportador de cookies e exportação do cookie.txt .
Tudo isso é muito bom para um script para uso de pessoas com mentalidade técnica, mas eu não faria isso em um aplicativo público geral. Você está em um mundo de mágoa para descobrir qual navegador usar (esse usuário tem três perfis do Firefox e dois perfis do Chrome, qual deles eu devo olhar?) E deixar os usuários de navegadores menos comuns irritados (Opera, Konqueror, Gecko,… ). Também é um grande sucesso na usabilidade, mesmo quando funciona: você está pedindo ao usuário para fazer algo no navegador antes de poder usar o aplicativo e não fazer algo no navegador (sair do site ou apagar cookies) contanto que eles continuem usando seu aplicativo.
Eu ainda consideraria a abordagem razoável se o site de destino fosse muito difícil de interagir. E mesmo assim, eu gostaria que o seu aplicativo interagisse com sua própria instância do navegador (usando seu próprio perfil) com uma estrutura de automação do navegador, como Selenium ou Watir . Para um login geral OpenID, acho melhor chamar um navegador conhecido e fazer com que ele cite as credenciais de autenticação.