这篇文章主要介绍了,如何用纯java写一个图片爬虫,美女图片爬虫代码分享,本文以采集抓取美女图片为例,需要的朋友可以参考下继续鼓捣爬虫,你懂的!

1、需要用到核心架包

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

2.程序入口(取个好名叫index)

import java.io.InputStream;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class index {private static final int page = 1264;public static void main(String[] args) {//HttpClient 超时配置RequestConfig Config = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).setConnectionRequestTimeout(6000).setConnectTimeout(6000).build();CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(Config).build();System.out.println("开始lol....");for (int i = page; i > 0; i--) {HttpPost httpPost = new HttpPost("http://www.jf258.com/nansheng/"+ i+"1.html"); //需要爬的网站httpPost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//伪装一个浏览器try {CloseableHttpResponse response = httpClient.execute(httpPost);//开始InputStream ism = response.getEntity().getContent();String context = Utils.convertStreamToString(ism);new Thread(new CheDHtmlParser(context, i)).start();} catch (Exception e) {e.printStackTrace();}}}
}</strong></span>

2、请求页面分析

import java.util.List;public class CheDHtmlParser implements Runnable {private String html;private int page;public CheDHtmlParser(String html,int page) {this.html = html;this.page = page;}@Overridepublic void run() {List<String> list = new ArrayList<String>();html = html.substring(html.indexOf("list"));String[] ss = html.split("li>");for (String s : ss) {if (s.indexOf("<img src=") > 0) {try{int i = s.indexOf("<img src=\"") + "<img src=\"".length();list.add(s.substring(i, s.indexOf("\"", i + 1)));}catch (Exception e) {System.out.println(s);}}}for(String imageUrl : list){new Thread(new CheDImageCreator(imageUrl,page)).start();}}
}
</strong></span>

3、文件流部分(主要是将分析好的请求页面,做一个字符转换,方便后面截取图片的路径)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Utils {public static String convertStreamToString(InputStream in) {BufferedReader reader = new BufferedReader(new InputStreamReader(in));StringBuilder sb = new StringBuilder();String line = null;try {while ((line = reader.readLine()) != null) {sb.append(line + "/n");}} catch (IOException e) {e.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}return sb.toString();}
}
</strong></span>

4、图片创建

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;public class CheDImageCreator implements Runnable {private static int count = 0;private String imageUrl;private int page;//存储路径private static final String basePath = "D:/tupian"; public CheDImageCreator(String imageUrl,int page) {this.imageUrl = imageUrl;this.page = page;}@Overridepublic void run() {File dir = new File(basePath);if(!dir.exists()){dir.mkdirs();}String imageName = imageUrl.substring(imageUrl.lastIndexOf("/")+1);//获取图片名字try {File file = new File( basePath+"/"+page+"--"+imageName);//拼接OutputStream os = new FileOutputStream(file);//创建一个url对象String u="http://www.jf258.com"+imageUrl;URL uri = new URL(u);  URLConnection connection = uri.openConnection();  connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//伪装成一个浏览器InputStream is = connection.getInputStream();  //开始一个流byte[] buff = new byte[1024];while(true) {int readed = is.read(buff);if(readed == -1) {break;}byte[] temp = new byte[readed];System.arraycopy(buff, 0, temp, 0, readed);//写入文件os.write(temp);}System.out.println("第"+(count++)+"张:"+file.getAbsolutePath());is.close(); os.close();} catch (Exception e) {e.printStackTrace();}}
}
</strong></span>

5、最后的效果就是这样的了。

6、源码下载地址(亲测有效,不行就来砍我)

https://download.csdn.net/download/zhaoxiangpeng16/21159505

java图片爬虫脚本_代码下载相关推荐

  1. Java编写图像浏览器_浏览器下载图像(JAVA代码)

    03-07阅读8103 简介: JavaWeb下载文件通常分为两种类型,一种是浏览器可以识别的文件类型,例如.txt,.excel,.zip等,可以通过使用以下链接来实现标签,但图片下载确实很麻烦. ...

  2. 搜狗图片页面爬虫脚本,批量下载图片

    #coding=utf-8 #--------------------------------------- # 程序:搜狗图片爬虫 # 作者:ewang # 日期:2016-7-6 # 语言:Pyt ...

  3. java sql编辑器 动态报表 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫...

    A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 , ...

  4. 整合mybatis框架源码 java图片爬虫

    获取[下载地址]   [免费支持更新] 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系 ...

  5. 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫

    获取[下载地址]   QQ 313596790 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速 ...

  6. quartz定时任务调度 自定义表单 java图片爬虫

    获取[下载地址]   QQ: 313596790 A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] B 集成代码生成器 [正反双向](单表.主 ...

  7. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  8. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  9. java bat 启动脚本_解析Tomcat的启动脚本--catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

最新文章

  1. 计算机组成定点数的编码,2.1.1 定点数的表示
  2. 我在 GitHub 上发现了一款骚气满满的字体!
  3. RxSwift 案例学习(一)
  4. mysql自动转库_JAVA自动操作0racle数据库转mysql数据库
  5. hdu 1007(最近点对)
  6. android翻页实现原理
  7. 量子计算入门-第一部分
  8. 计算机视觉结课论文,计算机视觉与图像识别结课论文
  9. Python 下的 tcp server/client 通信
  10. [记忆碎片的磁盘整理]老妈
  11. java学习(126):throw向上抛出异常
  12. [摘抄]〈测试之美〉读后感
  13. 权限管理Ranger
  14. [RK3399][Android7.1] adb remount失败
  15. centos7 python3 爬虫登陆邮箱_使用爬虫爬取超星学习通的作业时间并且通过邮件提醒!...
  16. 脚本文件BAT入门(1)
  17. 12大类150个图像处理和深度学习开源数据集
  18. MySQL命令行中文显示乱码怎么办
  19. 图书馆抢座系统(python) 附源码
  20. asp毕业设计——基于asp+access的网上投票系统设计与实现(毕业论文+程序源码)——网上投票系统

热门文章

  1. 塞尔达传说-烹饪菜单详情
  2. 打印机无法打印每次重启后才能访问打印文件
  3. 北方大学 ACM 多校训练赛 第五场(D. 节操大师 - 二分)
  4. 如何在 iPhone 和 iPad 上关闭自动更正?
  5. 计算机芯片的主要材料是半导体吗,半导体和芯片有什么不同
  6. Quartus如何设置虚拟管脚Virtual Pin(具体设置方法)
  7. 互联网人连相亲都不说人话
  8. TCP/IP,单进程服务器与客户端连接通信,ipv4,TCP传输,无复用简单实例,nc模拟客户端连接服务器
  9. 庆祝自己的博客开张~~
  10. 求解!IDEA使用泛型V,K,V报红(报错),求大佬支招(已解决)