Domanda

Ho uno script in Perl che utilizza LWP::UserAgent per scaricare una pagina web, che poi i processi utilizzando le espressioni regolari.Il problema è che alcune parti del sito sono regolari HTML non vengono restituiti a LWP::UserAgent dal momento che il sito riconosce che il browser non avere Flash installato e restituisce invece HTML spingendoci a scaricare il Flash di HTML appropriato che dobbiamo analizzare.

Come posso fare LWP::UserAgent sembrano avere flash installato il web server che si sta richiedendo la pagina?Sto usando il seguente codice per inizializzare LWP::UserAgent:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new(cookie_jar => { },requests_redirectable => [ ]);
$ua->agent('Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:9.9.9.9) Gecko/20079999 Firefox/2.0.0.1');
$ua->timeout(10);

Grazie in anticipo per il vostro aiuto!

È stato utile?

Soluzione 3

Sia @dma_k @ Michael & erano corrette. Il server non stava controllando se LWP :: UserAgent aveva installato flash. Invece, per qualche motivo il contenuto restituito non è stato oggetto di dumping correttamente mentre stavamo cercando di eseguire il debug dello script. Purtroppo non abbiamo trovare un modo per risolvere questo problema, ma dopo alcuni tentativi ed errori abbiamo capito come tirare fuori i campi appropriati dalla pagina. Mi dispiace che non c'è davvero una risposta corretta per questo.

Altri suggerimenti

Mi consiglia di utilizzare Firebug per questo - molto bello e potente addon di FF.Sono d'accordo con Michele, che il server è in grado di imparare ad informazioni relative al client solo da intestazioni inviare a lui, o da script che viene eseguito sul client e può parlare di server web (JavaScript, Flex, ...).Per JavaScript caso puoi provare a disabilitarlo in FF temporanea e provare a ricaricare la pagina:se il server ti risponde lo stesso per LWP, poi si sa la risposta.

Il sito è probabilmente testando se il flash è installato utilizzando JavaScript. Spesso questo test è solo lato client e là per non dovrebbe pregiudicare la pagina. Ma forse stanno sparando una richiesta asincrona dicendo al server che Flash è installato. Per testare per questo è necessario scaricare TamperData, caricare la finestra TamperData dal menu Strumenti e aggiornare la pagina. La finestra vi mostrerà tutte le richieste che vengono sparati fuori e li si può controllare. Se c'è qualche richiesta come http://whatever.com/flash_test.php?flash_installed=true , allora si può ripetere questa richiesta utilizzando LWP.

Un'altra opzione è quella di decompilare l'applicazione flash. Questo è molto facile da fare e spesso si otterrà sorgente completo compresi i commenti di codice, ed ecco un gratis processo.

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