一、导入jsoup的maven依赖

org.jsoup

jsoup

1.8.3

二、运行代码 也可以自定义爬取的网站这里就以https://gank.io/special/Girl为例

package com.song;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import java.io.*;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.UUID;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class SpyderTest {

/**

* [url=home.php?mod=space&uid=686208]@AuThor[/url] Maoyan

* [url=home.php?mod=space&uid=264116]@data[/url] 2020/3/31 12:30

* [url=home.php?mod=space&uid=1248337]@version[/url] 1.0.0

*/

private static HttpURLConnection conn = null;

private static InputStream inputStream = null;

private static BufferedInputStream bufferedInputStream = null;

private static FileOutputStream fileOutputStream = null;

//利用预编译正则表达式提高效率

private static Pattern pattern = Pattern.compile("/images/\\w+");

public static void main(String[] args) throws IOException {

for (int i = 1; i <= 5; i++) {

//创建url

URL url = new URL("https://gank.io/special/Girl/page/" + i);

//创建doc对象

Document document = Jsoup.parse(url, 20 * 1000);

//获取img标签

Elements imgs = document.getElementsByTag("title");

Elements elements = document.select("a[title][target][style]");

for (Element e :

elements) {

String image = "第" + i + "页:" + "https://gank.io" + e.attr("style");

//正则表达式

Matcher matcher = pattern.matcher(image);

while (matcher.find()) {

System.out.println("第" + i + "页:" + "https://gank.io" + matcher.group());

//这里可以写成工具类

File file = new File("D:\\picture\\littlesister");

if (!file.isDirectory() && !file.exists()) {

//如果文件夹不存在则创建一个文件夹

file.mkdirs();

}

//生成一个唯一的标记来当作图片名称

String filename = UUID.randomUUID().toString();

fileOutputStream = new FileOutputStream(file + "\\" + filename + ".jpeg");

//建立连接

URL imageurl = new URL("https://gank.io" + matcher.group());

conn = (HttpURLConnection) imageurl.openConnection();

//使用GET方法

conn.setRequestMethod("GET");

//连接指定的资源

conn.connect();

//获取输入流

inputStream = conn.getInputStream();

//新建buffer缓冲流包装输入流

bufferedInputStream = new BufferedInputStream(inputStream);

//创建大小为1k的"水桶"

byte[] bytes = new byte[1024];

//用于保存实际读取的字节数

int hasRead = 0;

//循环取水

System.out.println("开始下载第" + i + "页的图片");

while ((hasRead = inputStream.read(bytes)) > 0) {

fileOutputStream.write(bytes, 0, hasRead);

}

System.out.println("第" + i + "页的图片下载完成");

//释放资源

fileOutputStream.close();

bufferedInputStream.close();

inputStream.close();

}

}

}

}

}

上效果图

做壁纸啥的是够了,当然也可以适当的多喝营养快线~~~

java 爬虫 图片_java实现爬虫爬取小姐姐图片相关推荐

  1. Python爬取小姐姐图片

    使用Python爬取小姐姐图片 首先上网站链接 唯美女生 爬取图片主要分为一下几步: 1.打开一个你喜欢的小姐姐的网站 E.g xiaojiejie web 2.下载并安装python环境 pytho ...

  2. python爬虫 爬取小姐姐图片

    前言 大致熟悉了python的基础语法以后,开始学习爬虫基础. 一.爬取前的准备工作 python3.7环境(只要是python3版本都可以): 依赖包 : time requests re (缺少包 ...

  3. 数据获取网络爬虫之--爬取小姐姐图片

    运行环境: python3+jupyter notebook 可直接运行 代码下载地址: https://download.csdn.net/download/weixin_44754046/1122 ...

  4. python爬虫爬取小姐姐图片(5762张)

    接触爬虫的第一天 第一步:现将python环境搭建好,工欲利其事必先利其器! 第二步:寻找目标网站,我选择的网站是http://www.win4000.com,里面有一个美女板块,里面有各种小姐姐的照 ...

  5. python爬虫获取图片无法打开或已损坏_Python爬取小姐姐图片

    爬取图片主要分为一下几步: 1.打开一个你喜欢的小姐姐的网站 2.下载并安装python环境 3.开始编码 python 全部代码如下 # requests 请求 需要提前在Terminal中安装 p ...

  6. python下载图片代码并解析_Python爬取小姐姐图片代码_批量下载

    本帖最后由 OnlineYx 于 2021-1-13 14:44 编辑 我试着改了一下,写了个循环和判断,输出起始网页的ID和结束网页的ID就能批量地下载小姐姐了. 001.png (83.38 KB ...

  7. Beautifulsoup+正则表达式多线程爬取小姐姐图片

    源码: import requests from requests.exceptions import RequestException from multiprocessing import Poo ...

  8. python爬取文字和图片_python爬虫--xpath结合re同时爬取文字与图片

    还是老家的旅游网址:http://www.patour.cn/site/pananzxw/tcgl/index.html,将这些特产的图片及其介绍都爬取下来! 源码: 1 # -*- coding:u ...

  9. 循环爬取图片_Python爬虫爬取小姐姐照片!

    哔哩哔哩上有一个相簿板块,里面有很多绘画和摄影,自己动手一张一张保存太慢,于是想到了python爬虫. 今天就用python来写个爬虫,爬取每月月榜上的小姐姐,一劳永逸. 爬虫步骤: 1.在bilib ...

最新文章

  1. Linux中的信号处理原理
  2. Linux系统中的防火墙的实现:iptables/netfilter
  3. curl代理ippost php_php使用curl通过代理获取数据的实现方法
  4. Tomcat配置和Web应用程序开发
  5. Python 判断字典是否有key,判断字典key的个数
  6. 04737 c++ 自学考试2019版 第二章课后程序设计题 3
  7. SQL实战之查找所有已经分配部门的员工的last_name和first_name
  8. 同一对象多条数据同时插入数据库
  9. 【图像修复】基于matlab GUI运动模糊消除(逆滤波)【含Matlab源码 847期】
  10. 用友nc java启动不了_用友NC开发本地启动客户端时界面空白问题的解决
  11. 手机怎么打开html页面,手机网页打不开怎么办?看了就知道了!
  12. HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
  13. 如何绘制论文中的图表?
  14. mac 端口被占用 解决方案
  15. c1语言水平要多久,「西班牙留学」零基础到西班牙读语言,多久能到C1?
  16. WebSocket 简述
  17. linux文件权限管理实验心得,Linux+文件权限管理实验
  18. 打印机服务器未响应,打印机不能打印,点击打印后没反应
  19. springboot+清远旅游推荐网站 毕业设计-附源码211551
  20. 三次B样条插值和误差分析

热门文章

  1. php5 mysql怎样下载,PHP5操作MySQL数据库(5)
  2. 学习笔记之C / C++
  3. Spring3 MVC 深入研究
  4. Swift学习笔记_数据类型_整数类型
  5. 加载gif图片的方法:(需要SDWebImage方法)
  6. cisco的telnet终端显示debug调试信息
  7. 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
  8. HDU 5491 The Next
  9. 使用了visual assist.net
  10. 对Spring Boot还陌生吗?