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多页的图片,简单用了个循环,每页的地址都有规律,找到规律就手到擒来了。

刚研究,如有高手,还望赐教。

时间: 2024-10-11 13:19:16

jsoup获取图片示例的相关文章

httpclient3+jsoup获取正方教务系统课表

运用httpclient3+jsoup获取正方教务系统课表 import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Scanner; i

BitmapFactory.Options详解 怎样获取图片的大小 遇到大一些的图片,遇到OOM(Out Of Memory)的问题

下面我们回到我们的主题上来:怎样获取图片的大小? 思路很简单: 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了. 新问题又来了,在通过BitmapFactory.decodeFile(Stringpath)方法将突破转成Bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题.怎么避免它呢? 这就用到了我们上面提到的BitmapFactory.Options这个类. Bitmap

拍照并获取图片

用户权限 <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /&g

利用php获取图片完整Exif信息类 获取图片详细完整信息类

这个是最近写的一个php获取图片Exif类,功能比较全面,也把所有的Exif都翻译了,执行效率也还可以. 唉,这次懒地写英文版了,以后有时间把英文版也做下.同样,不设置隐藏,也不需金钱. 因为这里不能贴链接,我博客里有个测试网页,大家如果有兴趣,可以去看看tonylevid.com 分两大模式:一个是已经转换数据的(如width:500px)用于显示:一个是未转换数据的如(width:500)用于用户自己自定义计算. 内置3种获取模式,用户可以自定义数组来获取. 注意:需在php.ini中开启m

PHP获取图片颜色值

PHP获取图片颜色值,检测图片主要颜色的代码: <?php $i=imagecreatefromjpeg("photo3.jpg");//测试图片,自己定义一个,注意路径 for ($x=0;$x<imagesx($i);$x++) { for ($y=0;$y<imagesy($i);$y++) { $rgb = imagecolorat($i,$x,$y); $r=($rgb >>16) & 0xFF; $g=($rgb >> &a

微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传

1.index.wxml 1 <!--index.wxml--> 2 <button style="margin:30rpx;" bindtap="chooseimage">获取图片</button> 3 <image src="{{tempFilePaths }}" mode="aspecFill" style="width: 100%; height: 450rpx&qu

php获取图片完整Exif信息类 获取图片详细完整信息类

首先解释一下什么是Exif.Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上,Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件以及相机品牌.型号.色彩编码.拍摄时录制的声音以及全球定位系统(GPS).缩略图等.简单地说,Exif=JPEG+拍摄参数.因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息. 开启PHP模块 默认情况下

JS获取图片的缩略图,并且动态的加载多张图片

找了好多资料也没有找到该死的ie的解决办法,最后放弃了ie <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>js获取缩略图</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <st

怎样从server获取图片

今天写了安卓程序与server通信.当中须要从server获取图片.本来以为下载流.处理文件流非常复杂.结果几句话就轻松搞定了.如今记在这里. // (2014.5.1第一种方法)通过server返回的图片url,再次向server请求,加入动态新闻图片 // 读取Bitmap图片 try { Bitmap bm; URL url; url = new URL(map.get("activityPhoto").toString()); HttpURLConnection conn =