我用几行Java代码撸了一个追书神器,真的是技术改变生活!老同学:艾玛真香!

大家好,我是Spring小杨,一个有梦想的Java司机。

前不久,有个老同学找到我,问有没有什么靠谱的追书神器?

我想着这玩意无非用爬虫,但是还是得尽量低调,不然牢底坐穿!

正版网站的资源很难爬下来的,所以书源还是只能搜盗版网站,某趣阁就是个不错的选择。

说干就干,我立刻用eclipse创建了一个Java项目,还是按照之前的配方,用Hutool做定时任务。

因为要爬取网站信息,所以还是得借助jsoup。

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

还是之前一样的配方,不过这次加了jsoupjavax.mail。为什么要发送邮件呢?那是因为我想要定时去检测网站的小说有没有更新,如果更新了,就及时把最新的章节通过邮件的形式发送给我,那不是更好吗?

这样我就可以立刻知道小说有没有更新了,然后更新的话,去自己的邮箱看就行了。

邮箱里面是肯定没有广告的啦!

public static HashMap cache = new HashMap<>();

public static Map cookies = new HashMap<>();

public static String url = “https://www.biquwx.la/xxx/”;

首先,定义几个成员变量,分别是缓存cache,cookie 和 url。我就不用数据库了,用一个静态的HashMap来做缓存。cookie是每次爬取网页后保存的,就是尽量模拟得像我浏览器访问。最后是url,就是小说网站的实际地址,大概是这么一个目录。

如果有更新,那就一定会出现在这个网页!

下面是我发送请求的代码:

Connection con = Jsoup.connect(url)

.userAgent(“Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0”)

.header(“Accept”, “text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”)

.header(“Accept-Language”,“zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3”)

.header(“Accept-Encoding”, “gzip, deflate”)

.header(“Connection”,“keep-alive”)

.header(“Upgrade-Insecure-Requests”, “1”).cookies(cookies);

为了不希望他一下子发送太多邮件,我单独设置了一个起始章节,放在txt文本里面的。

里面就一个最新的章节标题:

已经发送过的章节,我把它放到缓存中,不再重复发送:

//先检查是否已经在缓存中

if(cache.containsKey(element.text())){

System.out.println(element.text()+ “已经发送,无需重复发送!”);

continue;

}

最后,再用Java发送一份邮件到自己的邮箱就可以啦!

MailAccount account = new MailAccount();

account.setHost(“smtp.163.com”);

account.setPort(Integer.valueOf(465));

account.setAuth(true);

account.setSslEnable(Boolean.valueOf(true));

account.setConnectionTimeout(1000L);

account.setSocketFactoryFallback(true);

account.setFrom(“你的发送邮箱”);

account.setUser(“你的发送邮箱”);

account.setPass(“你发送邮箱的授权码”);

MailUtil.send(account, “xxxxxxxxx@qq.com”,element.text() , content, true, new File[0]);

System.out.println(“发送成功!”);

我用的是163邮箱,然后发到对应的qq邮箱。

下面是我成功收到的小说章节邮件:

配上定时任务,效果是达到了, 但是这个还是得放在服务器上运行才好,不然总不可能一直开着电脑吧,哈哈。

全部源代码如下:

/**

  • 自动发送小说最新章节

*/

public static void sendMail() throws IOException{

System.out.println(“开始准备爬取…”);

Connection con = Jsoup.connect(url)

.userAgent(“Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0”)

.header(“Accept”, “text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”)

.header(“Accept-Language”,“zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3”)

.header(“Accept-Encoding”, “gzip, deflate”)

.header(“Connection”,“keep-alive”)

.header(“Upgrade-Insecure-Requests”, “1”).cookies(cookies);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

image

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

image

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-1y4ulPpm-1713691993000)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值