2016-01-02 2 views
0

Я пытаюсь скрасить изображение src продукта из интернет-магазина Flipkart с помощью Jsoup. Вот код, который я попробовал.Как извлечь src изображения с помощью Jsoup

String url = "http://www.flipkart.com/moto-g-3rd-generation/p/itme9ysjr7mfry3n?pid=MOBE6KK93JG5WKB2&cmpid=content_mobile_8965229628_gmc_pla&tgi=sem%2C1%2CG%2C11214002%2Cg%2Csearch%2C%2C50314733420%2C1o1%2C%2C%2Cc%2C%2C%2C%2C%2C%2C%2C&gclid=COXtgdLyiMoCFUyhaAodIawO8w"; 

Document doc = Jsoup.connect(url).get(); 

Elements imageElements = doc.select("img[class=productImage]"); 

String img = imageElements.attr("src"); 

System.out.println(img); 

Адрес электронной почты: HTML-код сайта. screenshot of html code

ответ

1

EDIT: Это работает.

String url = "http://www.flipkart.com/moto-g-3rd-generation/p/itme9ysjr7mfry3n?pid=MOBE6KK93JG5WKB2&cmpid=content_mobile_8965229628_gmc_pla&tgi=sem%2C1%2CG%2C11214002%2Cg%2Csearch%2C%2C50314733420%2C1o1%2C%2C%2Cc%2C%2C%2C%2C%2C%2C%2C&gclid=COXtgdLyiMoCFUyhaAodIawO8w"; 

     Document doc; 
     try { 
      doc = Jsoup.connect(url).get(); 
      Elements imageElements = doc.select("img.productImage"); 

      for(Element e : imageElements){ 
       System.out.println(e.attr("data-src")); 
      } 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 

изменения:

  1. вы использовали [класс =, который может быть сокращен с помощью .productImage вместо

  2. вы не ставили попробовать поймать (относительно не важно)

  3. вы пытаетесь получить attr для всех элементов. Вместо этого вы должны использовать цикл.

EDIT: ОК. Я узнал о проблеме странного src изображения. Похоже, что Javascript изменил атрибут «src» после отображения страницы. Реальный src - это значение «data-src», которое позже удаляется javascript. Странно, да?

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