【问题标题】:Jsoup scraping image url results in data:image/gif;base64,Jsoup 抓取图片 url 结果 data:image/gif;base64,
【发布时间】:2020-05-01 18:52:25
【问题描述】:

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

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

我想获取产品的图片。当我从谷歌浏览器浏览页面的代码时,我会得到这样的结果:

<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。

【问题讨论】:

标签: java web-scraping jsoup


【解决方案1】:

所以基本上我刚刚切换到硒。它可能会慢一些,但至少进展是在进行中。 我也尝试过 HtmlUnit,但它似乎不适用于 JS。

【讨论】:

    猜你喜欢
    • 2014-04-15
    • 2021-01-26
    • 2016-04-27
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多