Jsoup 抓取图像 url 结果数据:image/gif;base64,

Jsoup scraping image url results in data:image/gif;base64,

我开始学习 Jsoup,想抓取 Tesco 网上商店。这是一个 link:

https://www.tesco.com/groceries/en-GB/shop/fresh-food/all

我想获取产品图片。当我从 Google Chrome 浏览页面代码时,我得到如下信息:

<img src="https://img.tesco.com/Groceries/pi/321/5054775188321/IDShot_225x225.jpg" alt="Tesco British
 Unsalted Butter 250G" class="product-image" 
srcset="https://img.tesco.com/Groceries/pi/321/5054775188321/IDShot_90x90.jpg 
768w,https://img.tesco.com/Groceries/pi/321/5054775188321/IDShot_225x225.jpg 4000w">

但是我的代码:

Document doc = null;
        try {
            doc = Jsoup.connect("https://www.tesco.com/groceries/en-GB/shop/home-and-ents/all?page=20").get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(doc.getElementsByClass("product-image-wrapper").get(0));

结果:

<a href="/groceries/en-GB/products/295626079" aria-hidden="true" class="product-image-wrapper" tabindex="-1">
 <div class="product-image__container">
  <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Sterling Blue Superkings 100 Pack" class="product-image">
 </div></a>

我认为问题是 URL 是由 JS 加载的,而 Jsoup 不支持它。有什么方法可以得到我在 chrome 中看到的 URL,还是应该使用更强大的工具,例如 HtmlUnit 或 Selenium。

所以基本上我刚刚切换到 selenium。可能会慢一些,但至少进步在进行中。 我也尝试过 HtmlUnit,但它似乎无法与 JS 一起使用。