【问题标题】:How to save an image from an HTML webpage with JSoup如何使用 JSoup 从 HTML 网页中保存图像
【发布时间】:2018-12-08 09:23:29
【问题描述】:

我正在尝试使用 JSoup 从 IMDb 链接中抓取海报图像,并将其保存以便以后我的程序可以使用。这是我目前所拥有的:

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JSoupTest
{

    public static void main(String[] args)
    {

        String address = "https://www.imdb.com/title/tt1270797/";
        try
        {
            Document doc = Jsoup.connect(address).get();
            Element link = doc.select().select();
        }
        catch (IOException e)
        {
            // Auto-generated catch block
            e.printStackTrace();
        }
    }

}

现在,我知道该图像位于名为“poster”的 div 类下,但我不知道如何提取它。请多多包涵,因为我之前没有使用 JSoup 的经验。非常感谢。

【问题讨论】:

    标签: java html web-scraping jsoup imdb


    【解决方案1】:

    我使用 JSoup 已经有一段时间了。但我从未尝试从 HTML 源下载图像。

    按照上面的操作获取文档后,您将获得所需的 div,方法是:

    Elements divs = doc.getElementsByClass("poster");
    

    上面的代码将返回所有带有“海报”类的元素。

    如果您确定只有一个名为“海报”的 div,您可以这样做:

    Element poster = divs.first();
    

    如果您不确定这一点,则需要找到一种方法将该 div 与其他 div 区分开来。

    现在,您有了“海报” div,您可以通过以下方式获取其中的链接:

    Elements image = poster.getElementsByTag("a");
    

    上面的代码将返回'poster' div 中的所有链接。正如我们在上面所做的那样,如果您确定 'poster' div 中只有一个链接,您可以这样做:

    Element downloadImage = image.first();
    

    现在,您有了所需图片的链接。

    【讨论】:

    • 感谢您的回复!我必须在您的代码中再添加两行才能使其正常工作:Elements img = downloadImage.getElementsByTag("img"); String imageLink = img.attr("src"); 现在它就像一个魅力。
    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多