爬了1000张清纯妹子私房照,我流鼻血了...

闲扯几句

大家好,我是你们的老朋友青戈,之前分享了一篇Java爬虫的入门实战教程,收获了不少赞,看来大家伙对爬虫的热情度还是蛮高的哈。既然大家都这么想学爬虫,那今天就安排点刺激的。那你要非问我有多刺激,那我只能告诉,我看完…流鼻血了…🤪

插播一条反爬信息:本文作者:程序员青戈,博客:https://blog.csdn.net/xqnode

我知道大家平时工作生活都挺累的,要是程序员的话就更苦逼了,加不完的班,敲不完的bug,着实让老哥我有点心疼啊,那么这期就给大家放一波福利。高能预警!一大批美女即将来袭,请各位朋友们把持住,把持住啊!


啥?看的不过瘾?我就知道你这么说,同样作为兄弟的我非常能理解啊,那么下面这篇教程你得好好看看了,因为这将直接决定你今晚能不能睡个好觉😂

进入主题

今天我们爬取的网站是 唯美女生网 ,我们进来看看

是不是很哇塞?都是好看的小姐姐😎这谁顶得住啊,我就点进去瞅一眼


卧槽?这什么鬼?小姐姐怎么变大妈了!

导演:搞错了,再来!

啊这,为什么让小小年纪的我看到这个?兄弟们,我又相信爱情了!曾经有一段真挚的爱情摆在我的面前,我没有好好珍惜,现在,她回来了,还是那么清纯、羞涩,穿着碎花的裙子,趴在床上向我微笑。

这,不就是青春吗?
这,不就是爱情吗?

还等什么?我来啦!

网页代码分析

回归主题哈,各位,我这个人有个不好的习惯,看到美女就走神,真是抱歉了,差点忘记了今天是来写代码的😅

这个网站的站长估计每天被爬虫的烦死了,服务器顶着巨大的压力,曾经一段时间还频繁宕机。为了解决后患,他干脆关了网页的f12功能,不让看代码了,防止无数的se狼们搞他的小站,毕竟人家也不容易,你们干太猛了,怼太深了,不给人家活路啊

今天我为了写这篇教程,也是花尽了心思啊,想尽办法拿到了他的源码,你们猜我是怎么搞的?

不知道你们观察过没,平时你在看网站源代码的时候,地址栏的前面会多这一段:view-source:,后面跟的就是你实际的网站的地址,比如百度的源码是这样的:view-source:https://www.baidu.com


那么同样的道理,我们也可以使用这个地址看这个网站的源代码,比如:view-source:https://www.vmgirls.com/15215.html

我们从网页的源代码分析可以找到图片的位置,分析得出 a标签的href 属性就是图片的地址:

随便点开看一下,证实我的想法:

OK,确定了图片的位置,那就好办了

开始撸码

还是老规矩,我们继续使用 Jsoup 来进行网页数据抓取,先引入jsoup的包:

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version>
</dependency>

连接目标网页,得到 Document 对象:

Document document = Jsoup.connect("https://www.vmgirls.com/15298.html").get();

Document对象中获取到目标图片所在父级的 div ,获取到这个div之后,事情就简单多了。

我们从这个div中获取所有的a标签,然后判断,a标签的href属性是否包含 jpeg 关键字,如果包含了,那就是我们需要抓取的图片。

Elements elements = element.getElementsByTag("a");for (Element a : elements) {String href = a.attr("href");if(href.contains("jpeg")) {System.out.println(href);}}

打印下结果,确实是拿到了所有的图片。

到了这一步算不算完成了呢?肯定没有啊,我们还没有下载到本地磁盘里面呢。不在自己电脑里怎么能在夜深人静的时候自己偷偷看啊😆

那我们就得想办法把这些链接下载下来啊,Java下载网络文件非常简单,我这里为了省事呢,直接使用了第三方的工具类 hutool ,感兴趣的同学们可以自己去了解一下 hutool 这个甜甜的工具类啊,保证你用完一次就爱上他。官网地址:https://www.hutool.cn/

引入hutool

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.7</version>
</dependency>

下载图片到本地磁盘:

for (Element a : elements) {String href = a.attr("href");if(href.contains("jpeg")) {System.out.println(href);// 下载图片到项目根路径下的imgs文件夹中HttpUtil.downloadFile("https:" + href, new File(System.getProperty("user.dir") + "/imgs"));}
}

再跑一遍:

控制台显示下载完成,我们打开本地磁盘的文件夹看看:


非常完美啊,看到这一排排的美女图片,内心还是有那么一丝丝的小躁动的 [害羞]

批量下载

刚才演示的是下载单个网页中的图片,那么很多坏家伙又会很好奇,怎么批量下载美女图片?

别以为我不知道你们的小心思哈,因为我也在琢磨呢,哈哈🤣

你别说,我还真找到办法了。

经过没日没夜的研究,我发现,不同网页的地址,是通过数字控制的,比如:https://www.vmgirls.com/14636.html 和 https://www.vmgirls.com/15298.html

那么就是说我们找到了这个数字,问题就迎刃而解了。

那么去哪找这个数字呢?答案肯定是在首页啊,打开首页的源代码看看:

我注意到这个 class=media-contenta 标签中包含了我们所需要的数据,所以我们来循环一次看看,是不是能拿到:

Document main = Jsoup.connect("https://www.vmgirls.com").get();
Elements medias = main.getElementsByClass("media-content");
for (Element media : medias) {System.out.println(media.attr("href"));
}

跑了一下代码,确实拿到了这个数字的地址,但是数据还是有点混乱。

我们需要做进一步的筛选,筛选出末尾是html结尾的地址。

Document main = Jsoup.connect("https://www.vmgirls.com").get();
Elements medias = main.getElementsByClass("media-content");
for (Element media : medias) {String href = media.attr("href");if (href.endsWith("html")) {System.out.println(href);}
}

再跑一次,这就完美了:

接下来就好办了,有了网页的地址,我们只需要挨个循环,就能批量得到网页的数据了!

完整代码:

Document main = Jsoup.connect("https://www.vmgirls.com").get();
Elements medias = main.getElementsByClass("media-content");
for (Element media : medias) {String url = media.attr("href");if (url.endsWith("html")) {Document document = Jsoup.connect("https://www.vmgirls.com/" + url).get();Element element = document.getElementsByClass("nc-light-gallery").get(0);Elements elements = element.getElementsByTag("a");for (Element a : elements) {String href = a.attr("href");if (href.contains("jpeg")) {System.out.println(href);HttpUtil.downloadFile("https:" + href, new File(System.getProperty("user.dir") + "/imgs"));}}}
}
System.out.println("下载完成");


怎么样?看到这琳琅满目的妹子,都是青春期的诱惑啊!心动没?没事,代码拿去,自己跑跑,晚上在被窝里偷偷看也没人知道的🤭

至少,我不会说出去~


我是程序员青戈,没错,逗比青年就是我了,还不赶紧来关注这个骚味十足的年轻人😋

我的原创公众号:Java学习指南 最近正在筹备一批Java干货教程,现在关注还赶得上趟哦🤩

感谢你的阅读,看完别忘记三连哦🍭我们下期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/354114.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBootWeb案例-1(上: 来源黑马程序员)

SpringBootWeb案例 完成后的成品效果展示&#xff1a; 主要内容如下&#xff1a; 准备工作部门管理 1. 准备工作 我们先从"需求"和"环境搭建"开始入手。 1.1 需求&环境搭建 1.1.1 需求说明 1、部门管理 部门管理功能开发包括&#xff1a; 查询部…

高校学生公寓数字化安全用电管理系统解决方案

摘要 本文针对高校学生公寓用电特点,从安全用电角度提出了一套集用电管理、计量、恶性负载智能识别控制、实时跟踪检测等功能于一体的数字化安全用电管理系统技术解决方案———学生公寓智能控电管理系统。 关键词:公寓恶性负载安全用电智能系统 0、引言 近年来,为了响应国…

短视频矩阵源码系统打包.源码

Masayl是一款基于区块链技术的去中心化应用程序开发平台&#xff0c;可帮助开发者快速、便捷地创建去中心化应用程序。Masayl拥有丰富的API和SDK&#xff0c;为开发者们提供了支持。此外&#xff0c;Masayl还采用了高效的智能合约技术&#xff0c;确保应用程序的稳定、安全和高…

【数据结构与算法分析】反转链表与顺序表(内含源码,思路清晰)

文章目录 介绍实现顺序表反转实现链表反转附链表的一些中间函数 介绍 顺序表和链表都是数据结构中常见的线性表。它们的主要区别在于内存管理方式不同。   顺序表&#xff08;Array&#xff09;是由一系列元素按照一定顺序依次排列而成&#xff0c;它使用连续的内存空间存储数…

怎样关闭百度云开机启动服务器,教你解决win10系统设置百度云管家开机自动启动的设置办法...

许多win10系统用户在工作中经常会遇到对win10系统设置百度云管家开机自动启动的设置方法&#xff0c;想必大家都遇到过需要对win10系统设置百度云管家开机自动启动进行设置的情况吧&#xff0c;那么应该怎么设置win10系统设置百度云管家开机自动启动的操作方法非常简单&#xf…

Windows电脑怎么解决百度云管家无法删除也无法打开的问题(臭流氓软件)

实习第一天有的东西需要从百度云上面下载&#xff0c;谁知道直接先给我下载了一个百度云管家&#xff0c;我&#xff1a;&#xff1f;&#xff1f;&#xff1f;&#xff1f; 然后发现还删除不了&#xff0c;哼&#xff0c;难不倒我。 直接打开任务管理器&#xff0c;找了很久…

如何清除百度云管家计算机图标,Win10此电脑中多了个百度云管家图标如何清除...

百度云管家是百度云的客户端&#xff0c;一些用户为了更加方便地上传下载文件&#xff0c;都会在电脑中安装百度云管家。但是最近有Win10用户反馈&#xff0c;安装了百度云管家后&#xff0c;此电脑中就多了“百度云管家”的图标&#xff0c;怎么删也删不掉&#xff0c;这该怎么…

百度云管家在计算机上删除,百度云管家盘符删不掉怎么办?删除百度云管家盘符的方法...

选择很多的人都喜欢使用百度云盘来进行文件或者的资料的存放&#xff0c;为的就是在其它的地方也能将文件或资料实施开启&#xff0c;就不用再使用硬盘或者是U盘来进行携带&#xff0c;这样不仅减少了很多不必要的麻烦&#xff0c;而且还简单轻松。然我们在使用百度云盘的时候&…

百度云管家下载速度也作假

以前写过一篇&#xff0c;百度云上传流量造假的&#xff1a;点这里 现在根据目前的检测发现&#xff1a;百度云在下载的时候速度造假&#xff0c;大文件测试的结果是&#xff1a;下载造假20%&#xff0c;即用100M的流量实际上只能下载80M的文件 对于按流量计费的小伙伴们&…

百度云管家开机启动如何取消

http://jingyan.baidu.com/article/c85b7a6404edde003bac95ce.html 度云管家在下载方面越来越有吸引力&#xff0c;但是对于大多数朋友来说&#xff0c;并没有需求到每次开机都要使用百度云管家的地步。那么怎么取消百度云管家的开机启动呢&#xff1f; 工具/原料 百度云管家 方…

百度云管家怎么用

百度云管家是百度公司旗下的一款软件&#xff0c;它主要被应用鱼下载功能上&#xff0c;支持断点续传&#xff0c;那么如何用呢。 方法/步骤 1 先从百度网站中搜索这个软件安装。点击推荐安装。 2 安装完毕后&#xff0c;点击体验下。这里提示输入百度HI的 ID&#xff0c; 3 这…

百度云管家 v 5.5.0 破解安装版

12月7日亲测有效&#xff01;用此破解版俺的百度云管家下载软件破纪录了 &#xff0c;欢迎大家试试。。。 如下载速度慢的话&#xff0c;可以先暂停再开始。 http://pan.baidu.com/s/1gffucan 转载于:https://blog.51cto.com/haiyang457/1880251

User agent switcher插件百度云盘不用百度云管家下载大文件

百度云盘现在很烦人啊&#xff0c;一个几M的小文件都要百度云管家才能下&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 以前在知乎上看到的一个方法&#xff08;现在找不到在哪了&#xff09;&#xff0c;用User agent switcher插件可以完美解决 火狐附加组件…

如何清除百度云管家计算机图标,怎么样删除我的电脑里的百度云管家图标

怎么样删除我的电脑里的百度云管家图标&#xff1f;相信对于不少朋友&#xff0c;网盘已经成为我们不可缺少的一部分&#xff0c;可以这么说&#xff0c;我们很爱它&#xff0c;但是由于各种各样的强制安装&#xff0c;就会有了计算机里面的网盘盘符&#xff0c;有些人喜欢这种…

C盘今天爆掉了,罪魁祸首--百度云管家

引起注意以后,慢慢查找元凶 发现:C:\Users\lenovo\AppData\Roaming 竟然全在这里,很无语 打开看看吧: 包含Config 和Data 两个文件夹 其中Data文件夹竟然占据四十多个G 里面竟然有五千多个日志文件: 无语了 上网查了下发现: C:\Users\你的用户名\AppData\Roaming\BaiduYu…

2023年前端面试题汇总-数据结构(链表)

1. 链表的概念 1.1. 链表的结构 在计算机里&#xff0c;不保存在连续存储空间中&#xff0c;而每一个元素里都保存了到下一个元素的地址的数据结构&#xff0c;我们称之为链表&#xff08;Linked List&#xff09;。链表上的每一个元素又可以称它为节点&#xff08;Node&…

Unity立方体六个面不同贴图

可用Unity官方材质&#xff1a;skybox下的Cubemap&#xff1a; 但是&#xff0c;有些面没有渲染上&#xff1a; 原因在于官方Shader里面的Cull off&#xff0c;将其改为Cull back就好了&#xff0c;或者ZWrite Off改为ZWrite On。附上代码&#xff1a; Shader "Custom…

Galgame研发日志:预算爆炸,问题不大

很多独立游戏制作路上遇到的问题&#xff0c;说到底就是钱的事儿&#xff0c;之所以这些问题成为问题&#xff0c;原因多半是没钱&#xff0c;今天就来谈谈关于游戏制作当中找钱和用钱的事儿。刚开始gal制作的事情&#xff0c;我初步定了一个40万的预算&#xff0c;不算高&…

轻音乐集锦

我相信好的轻音乐能修身养性&#xff0c;对人的性格塑造影响比较大的。本人这几年收集了一些轻音乐&#xff0c;在这里分享一下。我下面介绍的曲子会有少量背景音乐、电影插曲、新世纪音乐、还有一些钢琴曲。分类比较粗糙&#xff0c;希望能耐心看完。这些音乐的特点都是轻柔的…

FProject_《galgame engine》篇

原项目日志(已荒废):http://hi.baidu.com/new/gal123 FProject&#xff1a;http://dl.vmall.com/c0xxq2qowq 全版本下载&#xff08;目录&#xff0c;可选&#xff09;&#xff1a;http://dl.vmall.com/c0dd1sq75l FSC&#xff08;最近无聊写的&#xff09;&#xff1a;命令行下…