jsoup获取图片示例

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

// 爬取图片  
public class Baidu {

    public static void main(String[] args) {
        String urlPath = "http://www.*****.com/chemo/2043_2.html";
        int index = 2;
        for (int j = 0; j <= 20; j++) {
            urlPath = "http://www.****.com/chemo/2043_" + (index++) + ".html";

            File f = new File("F:/imgs");
            if (!f.exists()) {
                f.mkdirs();
            }
            

            Document doc;
            try {
                doc = Jsoup.connect(urlPath).timeout(10000).get();

                // 获取后缀为jpg的图片的元素集合
                Elements pngs = doc.select("img[src$=.jpg]");
                // 遍历元素
                for (Element e : pngs) {
                    String src = e.attr("src");// 获取img中的src路径
                    // 获取后缀名
                    String imageName = src.substring(src.lastIndexOf("/") + 1,
                            src.length());
                    // 连接url
                    URL url;
                    try {
                        url = new URL(src);
                        URLConnection uri = url.openConnection();
                        // 获取数据流
                        InputStream is = uri.getInputStream();
                        // 写入数据流
                        OutputStream os = new FileOutputStream(new File(
                                "F:/imgs", imageName));

                        byte[] buf = new byte[3072];
                        int i = 0;
                        while ((i = is.read()) != -1) {
                            os.write(i);
                        }
                os.close();
                    } catch (MalformedURLException e1) {
                        e1.printStackTrace();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }

                }

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

    }

}

这里用的是jsoup1.6.3jar

研究了一天时间,说说碰到的难题。我这里抓取的是以.jpg为主的图片.
当时没有获取图片的后缀名,每次往电脑上下载图片总是新建一个空的文件夹。一定要获取到图片的后缀名才行。
还有一点就是我这个方法不一定适合所有的网站,不同网站的src地址不一样,需要注意一下。
我这个是有20多页的图片,简单用了个循环,每页的地址都有规律,找到规律就手到擒来了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • 人的性格几乎不会发生变化,就像有些女生一样,即使三四十岁了也是活蹦乱跳就像小孩子一样。她们一直都是活力四射,是因为...
    恋星座阅读 367评论 0 0
  • 按时醒了这么些日子,今天终于早起锻炼了。 感觉还不错,继续坚持。
    元月10号阅读 176评论 0 0
  • 文\杨聪 老婆出差去了,要一个星期。 他急忙打开网站。差不多被老婆禁网了三个月,现在终于可以透一透气了。他兴奋地读...
    温州好老师阅读 418评论 4 4
  • 有缘的人,总是在花好月圆的时候相遇,在刚好的时间里明白应该明白的事,不多也不少,不早也不迟,才能在刚好的时刻里说出...
    九尾狐说MiAo阅读 155评论 1 0