Domanda

Sto cercando di automatizzare alcune interazioni web, vale a dire un download periodico di file da un sito Web sicuro. Ciò comporta sostanzialmente l'ingresso del mio nome utente/password e navigare all'URL appropriato.

Ho provato semplici script in Python, seguito da script più sofisticati, solo per scoprire che questo particolare sito Web sta usando alcuni odiosi javascript e meccanismo basato su flash per l'accesso, rendendo i miei metodi inutili.

Ho quindi provato HTMlUnit, ma non sembra che non volesse funzionare. Sospetto che l'uso di Flash sia il problema.

Non voglio più pensarci, quindi mi sto avvicinando allo scripting un vero browser per accedere e afferrare il file di cui ho bisogno.

I requisiti sono:

  • Esegui su Linux Server (cioè no x in esecuzione). Se ho davvero bisogno di avere Xi può farlo accadere, ma non sarò felice.
  • Sii affidabile. Voglio iniziare questa cosa e non pensarci mai più.
  • Sii script. Niente di troppo sofisticato, ma dovrei essere in grado di dire al browser i vari passaggi da fare e le pagine da visitare.

Ci sono buoni toolkit per un browser script senza testa, senza X? Hai provato qualcosa di simile e se sì hai parole di saggezza?

È stato utile?

Soluzione

Ho svolto attività correlate con browser incorporato IE (sebbene fosse l'applicazione GUI con pannello componente del browser nascosto). In realtà puoi prenderlo motore di layout e tagliare la logica di output. La navigazione deve essere eseguita tramite eventi simili a script.

Puoi usare Piede di porco. È una versione senza testa di Firefox (motore Gecko). Trasforma il browser in un server riposante che può accettare richieste ("Fetch URL"). Quindi analizza HTML, lo rappresenta come DOM, attendere il ritardo definito per tutti gli script eseguiti.

Funziona su Linux. Suppongo che tu possa estenderlo facilmente per il tuo obiettivo usando JS e ricche abilità Xulrunner.

Altri suggerimenti

Che dire Phantomjs?

Hai provato Selenio? Ti permetterà di registrare uno scenario di utilizzo, usando un'estensione per Firefox, che può successivamente essere riprodotta utilizzando una serie di metodi diversi.

EDIT: mi sono appena reso conto che questa è stata una risposta molto tardiva. :)

Dai un'occhiata a Webkitdriver. Il progetto include l'implementazione senza testa di Webkit.

Non so come eseguire le interazioni flash (e sono anche interessato), ma per HTML/JavaScript puoi usare Pollo.

E per ottenere un browser script senza testa + che lavora su Linux è possibile utilizzare il Libreria QT Webkit. Ecco un esempio di esempio.

Per raggiungere questo obiettivo, scrivo solo estensioni di Chrome che pubblicano su Couchdbs (esempio e il suo Futon). Aggiungi il divano alle autorizzazioni nel manifest per consentire XHR a dominio incrociato.

(Sono arrivato a questo thread alla ricerca di un'alternativa senza testa a quello che ho fatto; avendo trovato questo thread, proverò a un foro a un certo punto.)

Inoltre, considerando le bizzarre caratteristiche di questo sito Web, non posso fare a meno di chiedermi se puoi sfruttare un buco di sicurezza per aggirare il flash e JavaScript.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top