Pergunta

Estou procurando automatizar algumas interações da Web, ou seja, download periódico de arquivos de um site seguro. Isso basicamente envolve inserir meu nome de usuário/senha e navegar para o URL apropriado.

Tentei script simples em Python, seguido de scripts mais sofisticados, apenas para descobrir que este site em particular está usando algum mecanismo desagradável de JavaScript e baseado em flash para login, tornando os meus métodos inúteis.

Eu tentei então htmlunit, mas isso também não parece querer trabalhar. Eu suspeito que o uso do flash seja o problema.

Eu realmente não quero mais pensar nisso, por isso estou inclinado a roteirizar um navegador real para fazer login e pegar o arquivo de que preciso.

Os requisitos são:

  • Execute no servidor Linux (por exemplo, não X em execução). Se eu realmente precisar fazer com que Xi possa fazer isso acontecer, mas não ficarei feliz.
  • Ser confiável. Quero começar isso e nunca mais pensar sobre isso.
  • Ser scriptable. Nada muito sofisticado, mas eu deveria ser capaz de dizer ao navegador as várias etapas para tomar e páginas para visitar.

Existem bons kits de ferramentas para um navegador de scripts sem cabeça e sem X? Você já tentou algo assim e, se sim, tem alguma palavra de sabedoria?

Foi útil?

Solução

Eu fiz tarefas relacionadas com o navegador incorporado do IE (embora fosse o aplicativo GUI com o painel de componentes do navegador oculto). Na verdade você pode levar qualquer motor de layout e corte a lógica de saída. A navegação deve ser feita através de eventos de disparo do tipo script.

Você pode usar Pé de cabra. É uma versão sem cabeça do Firefox (mecanismo Gecko). Ele transforma o navegador em servidor RESTful que pode aceitar solicitações ("Fetch URL"). Portanto, analisa HTML, representa -o como DOM, aguarde o atraso definido para todo o script executado.

Funciona no Linux. Suponho que você possa estendê -lo facilmente para o seu objetivo usando as habilidades JS e Rich Xulrunner.

Outras dicas

A respeito Phantomjs?

Você tentou Selênio? Ele permitirá que você registre um cenário de uso, usando uma extensão para o Firefox, que pode ser reproduzida posteriormente usando vários métodos diferentes.

EDIT: Acabei de perceber que essa era uma resposta muito tardia. :)

Dê uma olhada em WebkitDriver. O projeto inclui a implementação sem cabeça do WebKit.

Não sei como fazer interações flash (e também estou interessado), mas para html/javascript você pode usar Pé de galinha.

E para obter um navegador sem cabeça + scriptable trabalhando no Linux, você pode usar o Biblioteca QT Webkit. Aqui está um exemplo de uso.

Para conseguir isso, apenas escrevo extensões do Chrome que posta para Couchdbs (exemplo e os seus Futon). Adicione o sofá às permissões no manifesto para permitir o domínio cruzado XHRS.

(Cheguei a este tópico em busca de uma alternativa sem cabeça para o que tenho feito; depois de encontrar esse tópico, vou tentar o Crowbar em algum momento.)

Além disso, considerando as características bizarras deste site, não posso deixar de me perguntar se você pode explorar algum buraco de segurança para contornar o Flash e o JavaScript.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top