2011-02-03 17 views
6

Deseo obtener la lista de todas las URL de imagen del código fuente HTML de una página web (tanto abul y urls relativas). Usé Jsoup para analizar el HTML pero no está dando todas las imágenes. Por ejemplo, cuando estoy de análisis google.com fuente HTML de su mostrando cero images..In google.com HTML enlaces de imágenes de origen están en forma ..Extraer todas las imágenes de HTML con JAVA

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

Y en rediff.com las imágenes están en forma de enlaces ..

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)");

Todas las imágenes no están con en "img" tags..I también quieren extraer imágenes que no son incluso con etiquetas de "img" como se muestra en la fuente HTML anterior.

¿Cómo puedo hacer esto ..? Por favor, ayúdame en este .. Gracias

+0

¿Por qué Java? ¿Has pensado en desarrollar un complemento de navegador? – fglez

+0

¿O implementar un proxy que guarda las imágenes? –

Respuesta

1

Esto va a ser un poco difícil, creo. Básicamente, necesitas una biblioteca que descargue una página web, construya el DOM de la página y ejecute cualquier javascript que pueda alterar el DOM. Después de todo lo que tienes que hacer, debes extraer todas las imágenes posibles del DOM. Otra opción posible es interceptar todas las llamadas de la biblioteca para descargar recursos, examinar la URL y si la URL es una imagen registrar esa URL.

Mi sugerencia sería comenzar jugando con HtmlUnit (http://htmlunit.sourceforge.net/gettingStarted.html). Hace un buen trabajo al compilar el DOM. No estoy seguro de qué tipo de ganchos tiene para interceptar los métodos que descargan recursos. Por supuesto, si no le proporciona los ganchos, siempre puede usar AspectJ o simplemente modificar el código fuente de HtmlUnit. Buena suerte, esto suena como un problema bastante interesante. Deberías publicar tu solución cuando la descubras.

0

Si solo desea todas las imágenes a las que se hace referencia en la página, ¿no puede simplemente escanear el código HTML y cualquier javascript o CSS vinculado con una expresión regular simple? ¿Cuán probable es que obtenga [-:_./%a-zA-Z0-9]*(.jpg|.png|.gif) en el HTML/JS/CSS que no es una imagen? Supongo que no muy probable. Y deberías permitir enlaces rotos de todos modos.

La sugerencia de Karthik sería más correcta, pero me imagino que es más importante para usted obtener absolutamente todo y filtrar las imágenes que no interesan.

Cuestiones relacionadas