Получите все Изображения из Программы WebPage | Java

В настоящее время мне нужна программа, которая, учитывая URL, возвращает список всех изображений на веб-странице.

т.е.:

logo.png gallery1.jpg test.gif

Действительно ли там какое-либо программное обеспечение с открытым исходным кодом доступно, прежде чем я попытаюсь кодировать что-то?

Языком должен быть Java. Спасибо Philip

6
задан Phil 31 January 2010 в 18:14
поделиться

5 ответов

HTMLUNIT имеет HTMLPage.getelementsBytagname («IMG») , который, вероятно, будет вам удовлетворить.

(прочитайте короткие Get Manage Руководство, чтобы увидеть, как получить правильный объект HTMLPage

10
ответ дан 8 December 2019 в 04:08
поделиться

Это мертвые простые с Parser HTML (и любой другой приличный анализатор 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"));
}
4
ответ дан 8 December 2019 в 04:08
поделиться

Вы можете анализировать HTML и собирать все атрибуты SRC элементов IMG в коллекции. Затем загрузите каждый ресурс с каждого URL и напишите его в файл. Для анализа имеется несколько доступных препаратов HTML, COBRA является одним из них.

0
ответ дан 8 December 2019 в 04:08
поделиться

Просто используйте простой анализатор HTML , например jTidy , а затем получить все элементы по имени тега img , а затем собрать атрибут src каждого из них в List < Строка> или, возможно, Список .

Вы можете получить InputStream из URL , используя URL # openStream () , а затем передать его любому парсеру HTML, который вы хотите использовать. Вот начальный пример:

InputStream input = new URL("http://www.stackoverflow.com").openStream();
Document document = new Tidy().parseDOM(input, null);
NodeList imgs = document.getElementsByTagName("img");
List<String> srcs = new ArrayList<String>();

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

Однако я должен признать, что HtmlUnit, предложенный Божо, действительно выглядит лучше.

12
ответ дан 8 December 2019 в 04:08
поделиться

Вы можете использовать wget , у которого есть много доступных опций.

Или Google для java wget ...

0
ответ дан 8 December 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: