2014-01-19 2 views
1

Я получаю изображения из Интернета, используя следующие строки кода:Jsoup - улучшить извлечение изображений из HTML страницы

for(int i=0; i<links.size(); i++){ 
     try{ 
      doc=Jsoup.connect(links.get(i)).userAgent("Mozilla").ignoreHttpErrors(true).timeout(0).get(); 
      Elements links=doc.getElementsByTag("img"); 
      imageLink=links.get(3).toString(); 
      String[] bits=imageLink.split("\""); 
      imageLink=bits[1]; 
      System.out.println(imageLink); 
      url=new URL(imageLink); 
      image=ImageIO.read(url); 
      images.add(image); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 

Этот код работает, но это очень медленно. Я получаю как одно изображение в секунду, и мне нужно, по крайней мере, половину времени. Я могу что-то сделать, чтобы улучшить его?

ответ

1

Вы можете заменить это:

imageLink=links.get(3).toString(); 
String[] bits=imageLink.split("\""); 
imageLink=bits[1]; 

с этим:

imageLink = links.get(3).attr("src"); 

Подробнее об извлечении атрибутов здесь: http://jsoup.org/cookbook/extracting-data/attributes-text-html

+0

Спасибо человека, никогда не думал об этом. Не знаю, почему на самом деле. – Andrew

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