2013-04-23 2 views
0

У меня вопрос. Когда я пытаюсь получить изображения с веб-страницы с помощью Jsoup в Java. Вот код:Не могу получить img теги

String link = "http://truyentranhtuan.com/detective-conan/856/doc-truyen/"; 
    Document docs = Jsoup.connect(link).timeout(60000).get(); 
    Elements comics = docs.select("#hienthitruyen img"); 
    System.out.println(comics.size()); 
    for (Element comic : comics) { 
     int i = 0; 
     System.out.println(comic); 
     String linkImage = comic.attr("src"); 
     if (!"".equals(linkImage)) { 
      URL url = new URL(linkImage); 
      BufferedImage image = ImageIO.read(url); 
      ImageIO.write(image, "jpg", new File(i + ".jpg")); 
      i++; 
     } 
    } 

Проблема в том, что я не могу получить любой IMG тег в этой веб-странице. Размер элементов всегда равен нулю. Но когда я просматриваю источник на этой веб-странице, там всегда будет тег img.

+0

Не могли бы вы предоставить нам URL-адрес страницы, которую вы просматриваете, или, по крайней мере, соответствующий фрагмент кода (блок 'div.hienthitentruyen')? – bezmax

+0

Я отредактировал его. спасибо вам – user2309985

ответ

1

Если вы посмотрите на реальный источник, а не на структуру DOM (например, сохраните HTML-страницу и откройте ее в Блокноте), вы увидите, что там нет тегов img. Все они заполняются динамически с помощью Javascript.

Теперь проблема заключается в том, что Jsoup не предназначен для выполнения Javascript, поэтому вы можете только проанализировать исходную структуру DOM, прежде чем она будет модифицирована (заполнена изображениями) Javascript. Чтобы сделать то, что вы хотите, вы можете использовать HTMLUnit, который может выполнять большую часть Javascript.

Смежные вопросы