美文网首页
jsoup获取图片示例

jsoup获取图片示例

作者: bboymonk | 来源:发表于2017-03-10 11:50 被阅读0次
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多页的图片,简单用了个循环,每页的地址都有规律,找到规律就手到擒来了。

相关文章

  • jsoup获取图片示例

    这里用的是jsoup1.6.3jar 研究了一天时间,说说碰到的难题。我这里抓取的是以.jpg为主的图片.当时没有...

  • jsoup获取文档类示例

    上面是如何爬取超链接里的内容,下面的比较简单

  • Java爬虫

    引入jsoup包 获取内容

  • Jsoup使用示例

    查看网页源码和对应标签 使用QQ浏览器搜狗引擎搜索奥迪 网页爬虫示例 在gradle中引入Jsoup 相关代码

  • Jsoup获取动态js生成的内容

    Jsoup本身是只能获取到静态页面的数据,并无法获取动态生成的内容,所以单单使用jsoup是无法获取到js生成的内...

  • 2018-01-05

    今日学习内容 一、获取初始页面 二、Jsoup模拟浏览器 Document doc = Jsoup.connect...

  • 项目总结 - 8.2

    如何获取手机系统相册中的图片 单张 多张 示例代码

  • Jsoup获取cookies

    抓取网页数据cookie获取 一、jsoup获取cookie Map cookies = null; Respo...

  • Java爬虫利器Jsoup

    一个Jsoup获取代理ip的demo

  • 阿里云 云存储

    PCH文件: 示例:图片存储处理 [1].图片上传: [2].获取云服务器存储地址: 获取到的阿里云存储地址:ht...

网友评论

      本文标题:jsoup获取图片示例

      本文链接:https://www.haomeiwen.com/subject/vgmngttx.html