从WebPage程序获取所有图像| Java的

目前我需要一个给出URL的程序,返回网页上所有图像的列表。

即:

logo.png gallery1.jpg test.gif

在我尝试编写代码之前是否有可用的开源软件?

语言应该是java。 谢谢Philip

HtmlUnit有HtmlPage.getElementsByTagName("img") ,这可能适合你。

(阅读简短的入门指南,了解如何获取正确的HtmlPage对象)

只需使用一个简单的HTML解析器 ,如jTidy ,然后通过标记名称 img 获取所有元素 ,然后在ListList收集每个元素的src属性。

您可以使用URL#openStream()获取URLInputStream ,然后将其提供给您要使用的任何HTML解析器。 这是一个启动示例:

 InputStream input = new URL("http://www.stackoverflow.com").openStream(); Document document = new Tidy().parseDOM(input, null); NodeList imgs = document.getElementsByTagName("img"); List srcs = new ArrayList(); for (int i = 0; i < imgs.getLength(); i++) { srcs.add(imgs.item(i).getAttributes().getNamedItem("src").getNodeValue()); } for (String src: srcs) { System.out.println(src); } 

但我必须承认,Bozho建议的HtmlUnit确实看起来更好。

使用HTML Parser (以及任何其他体面的HTML解析器)这很简单:

 Parser parser = new Parser("http://www.yahoo.com/"); NodeList list = parser.parse(new TagNameFilter("IMG")); for ( SimpleNodeIterator iterator = list.elements(); iterator.hasMoreNodes(); ) { Tag tag = (Tag) iterator.nextNode(); System.out.println(tag.getAttribute("src")); } 

您可以使用具有许多可用选项的wget 。

或google for java wget …

您可以解析HTML,并收集集合中IMG元素的所有SRC属性。 然后从每个URL下载每个资源并将其写入文件。 对于解析,有几种可用的HTML解析器, Cobra就是其中之一。

使用Open Graph标签和HTML单元,您可以非常轻松地提取数据(PageMeta是一个简单的POJO保存结果):

  Parser parser = new Parser(url); PageMeta pageMeta = new PageMeta(); pageMeta.setUrl(url); NodeList meta = parser.parse(new TagNameFilter("meta")); for (SimpleNodeIterator iterator = meta.elements(); iterator.hasMoreNodes(); ) { Tag tag = (Tag) iterator.nextNode(); if ("og:image".equals(tag.getAttribute("property"))) { pageMeta.setImageUrl(tag.getAttribute("content")); } if ("og:title".equals(tag.getAttribute("property"))) { pageMeta.setTitle(tag.getAttribute("content")); } if ("og:description".equals(tag.getAttribute("property"))) { pageMeta.setDescription(tag.getAttribute("content")); } } 

您可以在Java中使用正则表达式

   

test test