2011-02-03 16 views
6

voglio ottenere l'elenco di tutti gli URL di immagini provenienti da sorgente HTML di una pagina web (Sia abosulte e URL relativi). Ho usato Jsoup per analizzare l'HTML ma non ha fornito tutte le immagini. Per esempio, quando sto parsing fonte google.com HTML propria che mostra lo zero images..In google.com HTML fonte Link di immagine sono in forma ..estratto di tutte le immagini da HTML utilizzando Java

"background:url(/intl/en_com/images/srpr/logo1w.png)

E in rediff.com le immagini collegamenti sono in forma ..

videoArr[j]=new Array("http://ishare.rediff.com/video/entertainment/bappi-da-the-first-indian-in-grammy-jury/2684982","http://datastore.rediff.com/h86-w116/thumb/5E5669666658606D6A6B6272/v3np2zgbla4vdccf.D.0.bappi.jpg","Bappi Da - the first Indian In Grammy jury","http://mypage.rediff.com/profile/getprofile/LehrenTV/12669275","LehrenTV","(2:33)"); j = 1 videoArr[j]=new Array("http://ishare.rediff.com/video/entertainment/bebo-shahid-jab-they-met-again-/2681664","http://datastore.rediff.com/h86-w116/thumb/5E5669666658606D6A6B6272/ra8p9eeig8zy5qvd.D.0.They-Met-Again.jpg","Bebo-Shahid : Jab they met again!","http://mypage.rediff.com/profile/getprofile/LehrenTV/12669275","LehrenTV","(2:17)");

Tutte le immagini non sono con in "img" tags..I vogliono anche estrarre le immagini che non sono neppure con nei tag "img", come mostrato nella sorgente HTML sopra.

Come posso fare questo ..? Please help me su questo .. Grazie

+0

Perché Java? Hai pensato a sviluppare un plugin per il browser? – fglez

+0

Oppure implementa un proxy che salva qualsiasi immagine? –

risposta

1

questo sta per essere un po 'difficile, credo. È fondamentalmente bisogno di una libreria che scarica una pagina web, costruire DOM della pagina ed eseguire qualsiasi javascript che possono alterare il DOM. Dopo tutto quello che hai fatto devi estrarre tutte le possibili immagini dal DOM. Un'altra opzione possibile è quella di intercettare tutte le chiamate dalla biblioteca per scaricare risorse, esaminare l'URL e se l'URL è un record di immagine tale URL.

Il mio suggerimento sarebbe di iniziare giocando con HtmlUnit (http://htmlunit.sourceforge.net/gettingStarted.html). Fa un buon lavoro di costruzione del DOM. Non sono sicuro di quali tipi di hook ha, per intercettare i metodi che scaricano risorse. Ovviamente se non ti fornisce gli hook puoi sempre usare AspectJ o semplicemente modificare il codice sorgente HtmlUnit. Buona fortuna, sembra un problema abbastanza interessante. Dovresti pubblicare la tua soluzione, quando la capisci.

0

Se si desidera solo ogni immagine di cui nella pagina, non puoi semplicemente eseguire la scansione del codice HTML e qualsiasi collegato JavaScript o CSS con una semplice espressione regolare? Quante probabilità ci sono che si otterrebbe [-:_./%a-zA-Z0-9]*(.jpg|.png|.gif) in HTML/JS/CSS che non è un'immagine? Immagino non molto probabile. E dovresti comunque permettere collegamenti interrotti.

suggerimento di Karthik sarebbe più corretto, ma immagino che sia più importante per te basta avere assolutamente tutto e filtrare le immagini non interessanti.

Problemi correlati