真香,50行Java代码爬取妹子套图!

news/2024/11/24 7:24:52/

前言

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下了或重如泰山或轻如鸿毛的几笔。就比如,我今天就爬取了上百套妹子图,以此发文纪念一下!!

配置

引入爬虫工具类:

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.2</version>
</dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.6.10</version>
</dependency>

步骤

  • 定义线程池,当然是为了充分利用机器配置

  • 获取本栏目所有妹子套图节点

  • 获取套图地址

  • 获取套图标题用于创建目录

  • 获取套图图片数量

  • 下载妹子套图

代码示例:

/*** 多线程获取妹子套图* 关注:https://blog.52itstyle.vip* 作者:小柒2012*/
public class ImagesUtil {/*** 获取CPU个数*/private static int corePoolSize = Runtime.getRuntime().availableProcessors();/*** 创建线程池  调整队列数 拒绝服务*/private static ThreadPoolExecutor executor  = new ThreadPoolExecutor(corePoolSize, corePoolSize+1, 10l, TimeUnit.SECONDS,new LinkedBlockingQueue<>(1000));public static void main(String[] args) throws IOException {System.out.println("系统CPU核数:"+corePoolSize);/*** 正则 匹配页码*/String regEx="[^0-9]";Pattern p = Pattern.compile(regEx);String baseUrl = "https://www.tupianzj.com";Connection connect = Jsoup.connect(baseUrl+"/meinv/mm/meizitu/");Document document = connect.get();/*** 获取本栏目所有妹子套图节点*/Elements elements = document.body().getElementsByClass("d1").select("li");for (Element img : elements) {Runnable task = () -> {try {/*** 获取套图地址*/String href = img.child(0).attr("href");Connection subConnect = Jsoup.connect(baseUrl+href). header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0").timeout(8000);Document subDocument = subConnect.get();/*** 获取套图标题用于创建目录*/String title = subDocument.body().getElementsByTag("h1").eq(1).html();System.out.println("开始下载:"+title);/*** 获取套图图片数量*/String txt =  subDocument.body().getElementsByClass("pages").select("li").eq(0).html();Matcher m = p.matcher(txt);if(StringUtils.isNoneBlank(m.replaceAll("").trim())){Integer pageNo =  Integer.parseInt(m.replaceAll("").trim());for (int i=0;i<pageNo;i++){String url = baseUrl+href;if(i!=0){int page = i+1;url = url.replace(".html","_"+page+".html");}subConnect = Jsoup.connect(url);subDocument = subConnect.get();String src = subDocument.getElementById("bigpicimg").attr("src");/*** 下载妹子*/HttpUtil.downloadFile(src, FileUtil.mkdir("e:/妹子图/"+title+"/"));}}} catch (IOException e) {e.printStackTrace();}};executor.execute(task);}}
}

预览

推荐一个Python爬取妹子的仓库:

https://gitee.com/52itstyle/Python

推荐一个超级简单 Java 图形验证码模块

分享一个支付大屏实时监控数据平台

推荐一款清爽的实时监控大屏附安装教程

大屏监控 Metabase 集成到 Java 项目

一个超牛逼的 Java 文件在线预览项目

如何保障消息100%投递成功、消息幂等性

技术人,做的越多你才能走的更远

传统功夫,点到为止,这次不搞偷袭!

小清新前后端分离后台管理系统

一个开源免费的车牌识别训练实战项目

霸气分享 74 款绚丽的监控大屏

一个基于 Vue3.x 的数据可视化大屏项目

推荐一款基于 Vue 的电商级海报生成器

SpringBoot 的接口快速开发框架

基于 SpringBoot + Vue 的智能停车场管理平台


http://www.ppmy.cn/news/495264.html

相关文章

PC电脑版微信朋友圈采集

,Pc电脑版本从3.3版本开始就已经支持朋友圈的浏览获取 点赞和评论啦 朋友圈以独立的页面出现&#xff0c;可以和其它的页面并存&#xff0c;下滑就可以完成浏览&#xff0c;可以进行评论点赞 目前已经完成HOOK自动定时采集朋友圈,可以一键导出Hrml 这是导出Html的

微信聊天记录备份到电脑

一、手机版微信APP和电脑版微信同时打开 确保两个软件连接的是同一个网络。同时&#xff0c;保证网络正常&#xff0c;微信可以正常工作。 在电脑微信软件那里&#xff0c;我们点击左下角的“更多”按钮&#xff0c;如下图所示。 二、点击“备份与恢复” 三、点击之后在手机上…

pc版微信聊天记录备份迁移

1. 备份:定期备份文件夹 C:\Users\${username}\Documents\WeChat Files (${username}为微信安装的windows用户名) 2. 恢复&#xff1a; &#xff08;1&#xff09;. 新机器安装成功微信后先别启动 &#xff0c;将 备份的WeChat Files 文件夹复制到 C:\Users\${username}\Doc…

PC电脑版微信聊天记录迁移方法

微信电脑版自带的 “备份与恢复” 功能&#xff0c;只能把手机上的聊天记录&#xff0c;备份在电脑上&#xff08;仅仅是备份&#xff0c;是不能在微信电脑版上查看刚备份的聊天记录的&#xff09;。备份后就可以删除手机上的聊天记录&#xff0c;需要的时候再用电脑版留存的备…

微信聊天记录导出为电脑txt文件教程

本文的最终目的是将手机微信的聊天记录导出到电脑里&#xff0c;变成txt文本文件&#xff0c;然后对其进行分析。 网上有一些工具也可以完成这个功能&#xff0c;但是基本都是付费的。手动操作的话&#xff0c;找了很多的博客&#xff0c;基本没有完全有效的。最终找到一篇很靠…

手把手教你生成你的独家微信聊天年度报告

大家好&#xff0c;我是机灵鹤。 今天是跟女朋友在一起 10 个月的纪念日&#xff0c;作为一名会 Python 的程序员&#xff0c;我决定将和女朋友的聊天记录导出来&#xff0c;生成一份专属于我们的《2021 恋爱年度报告》。 感兴趣的朋友也可以学起来。 废话不多说&#xff0c;…

微信聊天记录同步电脑

相信很多人&#xff0c;遇到过“明明在一个路由器下&#xff0c;却不能同步的情况。” 下面是一个超级简单的解决方案&#xff0c;是我不小心发现的。 &#xff08;WIN10 自带&#xff09; &#xff08;别的系统&#xff0c;试试360随身WiFi&#xff0c;猎豹WiFi——百度一下…