首页  >  问答  >  正文

java - 爬虫爬取图片问题?

刚才修改了下 POM,大家可以重新下载源码

这是我写的爬虫的项目地址
项目不报错,但是问题是下载图片到本地后经常性的是图片不完整,如下:

这是下载图片的核心代码,如下:

@Override
    public void run() {
        Response res = null;
        try {
            res = Jsoup.connect(src).ignoreContentType(true).timeout(30000).execute();
            byte[] bytes = res.bodyAsBytes();
            File file = new File(path + name);
            if (!file.exists()) {
                RandomAccessFile raf = new RandomAccessFile(file, "rw");
                raf.write(bytes);
                raf.close();
            }
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }

经过资料查询,感觉是范围请求 Range的问题或者自己没发现的问题?希望大家给看下,谢谢

天蓬老师天蓬老师2675 天前814

全部回复(1)我来回复

  • typecho

    typecho2017-06-23 09:14:30

    1. 感觉是响应数据没获取完整,你debug一下看看响应的实际数据大小和你保存的数据大小是否有出入。

    2. 又或者因为还有一部分数据还在缓冲区中,没来得及写到文件,此时进程退出,导致数据不完整,关闭文件流之前执行一下flush操作。

    回复
    0
  • 取消回复