使用JSoup将此URL的内容:http://www.aw20.co.uk/images/logo.png保存到文件中

use*_*544 2 java image jsoup

我尝试使用JSoup来获取此URL的内容http://www.aw20.co.uk/images/logo.png,即image logo.png,并将其保存到文件中.到目前为止,我已使用JSoup连接到http://www.aw20.co.uk并获取文档.然后我找到了我正在寻找的图像的绝对网址,但现在我不知道如何获得实际图像.所以我希望有人能指出我正确的方向吗?无论如何我也可以使用Jsoup.connect("http://www.aw20.co.uk/images/logo.png").get(); 得到图像?

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


public class JGet2 {

public static void main(String[] args) {

    try {
        Document doc = Jsoup.connect("http://www.aw20.co.uk").get();

        Elements img = doc.getElementsByTag("img");

        for (Element element : img) {
            String src = element.absUrl("src");

            System.out.println("Image Found!");
            System.out.println("src attribute is: " + src);
            if (src.contains("logo.png") == true) {
                System.out.println("Success");     
            }
            getImages(src);
        }
    } 

    catch (IOException e) {
        e.printStackTrace();
    }
}

private static void getImages(String src) throws IOException {

    int indexName = src.lastIndexOf("/");

    if (indexName == src.length()) {
        src = src.substring(1, indexName);
    }

    indexName = src.lastIndexOf("/");
    String name = src.substring(indexName, src.length());

    System.out.println(name);
}
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*ley 10

如果您不想将其解析为HTML,则可以使用Jsoup来获取任何URL并将数据作为字节获取.例如:

byte[] bytes = Jsoup.connect(imgUrl).ignoreContentType(true).execute().bodyAsBytes();
Run Code Online (Sandbox Code Playgroud)

ignoreContentType(true)设置是因为否则Jsoup将抛出一个异常,即内容不是HTML可解析的 - 在这种情况下可以,因为我们bodyAsBytes()用来获取响应体,而不是解析.

有关更多详细信息,请查看Jsoup Connection API.


gig*_*dot 5

Jsoup不是为下载网址内容而设计的.

由于您可以使用第三方库,因此您可以尝试使用apache common IO将给定URL的内容下载到文件:

FileUtils.copyURLToFile(URL source, File destination);
Run Code Online (Sandbox Code Playgroud)

它只有一条线.