使用JAVA从HTML中提取所有图像

use*_*989 6 java

我想从网页的HTML源代码中获取所有图片网址的列表(abosulte和相对网址).我使用Jsoup来解析HTML,但它没有给出所有图像.例如,当我解析google.com HTML源时,它显示零图像..在google.com中HTML源图像链接在表单中..

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

在rediff.com中,图片链接的形式是..

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

所有图像都没有在"img"标签中.我还想提取在"img"标签中甚至没有的图像,如上面的HTML源代码所示.

我怎么能这样做??请帮我这个..谢谢

Kar*_*ran 1

我想这会有点困难。您基本上需要一个库来下载网页、构建页面的 DOM 并执行任何可能更改 DOM 的 javascript。完成所有这些后,您必须从 DOM 中提取所有可能的图像。另一种可能的选择是拦截库下载资源的所有调用,检查 URL 以及该 URL 是否是图像,记录该 URL。

我的建议是首先使用 HtmlUnit(http://htmlunit.sourceforge.net/gettingStarted.html)。它在构建 DOM 方面做得很好。我不确定它有什么类型的钩子来拦截下载资源的方法。当然,如果它没有为您提供钩子,您始终可以使用 AspectJ 或简单地修改 HtmlUnit 源代码。祝你好运,这听起来是一个相当有趣的问题。当你弄清楚后,你应该发布你的解决方案。