如何使用JSoup从HTML网页保存图像

时间:2018-12-07 22:08:13

标签: java html web-scraping jsoup imdb

我正在尝试使用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的经验。非常感谢。

1 个答案:

答案 0 :(得分:2)

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

按照上述步骤获取文档后,您将使用以下方法获得所需的div:

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

上面的代码将返回所有带有'poster'类的Elements。

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

Element poster = divs.first();

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

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

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

上面的代码将返回“海报” div中的所有链接。如上所述,如果您确定'poster'div中只有一个链接,则可以执行以下操作:

Element downloadImage = image.first();

现在,您已经有了所需图像的链接。