2011-02-03 87 views
6

我想从一个网页的HTML源代码中所有图片的URL列表(无论abosulte和相对URL)。我用Jsoup解析HTML,但没有给出所有图像。例如,当我解析google.com HTML源其示出零images..In google.com HTML源图像链接在形式上..提取任何图片,HTML使用Java

"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” tags..I也想提取如上面的HTML源不属于即使在“IMG”的标签图像。

我怎样才能做到这一点..?请帮我在这.. 感谢

+0

为什么Java的?你有没有想过开发一个浏览器插件? – fglez 2011-02-04 16:11:33

回答

1

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

我的建议是用打的HtmlUnit开始(http://htmlunit.sourceforge.net/gettingStarted.html。)它确实建立DOM的一个好工作。我不确定它具有什么类型的钩子来拦截下载资源的方法。当然,如果它不能为您提供钩子,你可以随时使用的AspectJ或者简单修改化的HtmlUnit源代码。祝你好运,这听起来像是一个相当有趣的问题。当你解决问题时,你应该发布你的解决方案。

0

如果你只是想在网页中提到每一个形象,你不能只扫描HTML和任何链接的JavaScript或用一个简单的正则表达式CSS?可能性有多大你的HTML/JS/CSS这不是一个形象得到[-:_./%a-zA-Z0-9]*(.jpg|.png|.gif)?我猜不太可能。无论如何,你应该允许断开链接。

KARTHIK的建议是比较正确的,但我想给你刚刚获得绝对一切,并过滤掉不感兴趣的图像是更重要的。

相关问题