找回密码
  注册[Register]
楼主: 骑猪看日出

【原创】完整的小说站点爬虫-spring-mybatis-jsoup-http-client

  [复制链接]
发表于 2017-12-4 17:19 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。


更新百度云盘下载地址:https://pan.baidu.com/s/1slMWFxV
183735iebbbli0lz6lm2pi.png


项目初衷:
前段时间迷上了辰东大大的完美世界,所以开始用微信读书来看,可惜太贵啦,后来只能去百度搜索了。
可是wap端的小说站点简直太没节操了,那些广告真是undefined
实在是不堪忍受。所以想做一个没有任何广告的自己的小说站点(果然,做出的站点也够简单的!)。
然后就付诸实践了!
==========================================
闲话少说,介绍一下如何运行这(几)个项目:
第一个项目:novel.spider(姑且叫他为spider吧)-jsoup,http-client
提供了三个最为底层的方法:
ChapterFactory.getChapterSpider(NovelSiteEnum novelSiteEnum).getChapters(NovelSpiderUtil.getRelativeUrl(NovelSiteEnum novelSiteEnum, url))  获取一个爬取对应网站的章节的实体,并执行爬取任务
ContentFactory.getContentSpider(NovelSiteEnum novelSiteEnum).getContent(NovelSpiderUtil.getRelativeUrl(NovelSiteEnum novelSiteEnum,url)) 获取一个爬取对应网站的内容的实体,并执行爬取任务
NovelDownloaderObserver observer = new NovelDownloaderObserver(url) 下载小说...

这三个都依赖于一个方法:NovelSpiderUtil.setRootPath(path) 该方法用来指定爬取规则的配置文件存放的路径,以及下载的小说存放在哪个文件夹下
该项目下有个测试类,可以参考一下使用方式:NovelSpiderTest.java

第二个项目:novel.book.storage(用来爬取某个网站的所有书列表)-mybatis
唯一的难点就是指定好配置文件,以及配置好数据库的连接信息。config目录下还有一个sql文件,该文件用来创建数据库和表,没有库爬到的数据没地方存呀。
这个项目很简单,总共2个类+1个接口,就不细说了!


第三个项目:novel (这是一个web站点)-spring,mybatis
稍微重要点的类是NovelController和NovelServiceImpl(写这个实现类的是才发现之前给自己挖的坑有多么的深,所以在spider项目里面多了一个抽象...)

稍微要注意的是,NovelServiceImpl中也调用了NovelSpiderUtil.setRootPath(path)方法来指定配置文件的位置。

下载地址(已更新):
novel.spider : http://share.weiyun.com/40b6bfbb2fe13cce449756901961e99a
novel.book.storage http://share.weiyun.com/b1a8e1ab18c5ba03221583365723cb47
novel站点 http://share.weiyun.com/2d8afb9436feb5ef84cc8830632809cf

一个依赖的简单工具jar包、(已更新
http://share.weiyun.com/b3dc4bba20896e87e864712f241f7edd

好多人都不太懂,我再解释一下:这三个组合在一起是完整的项目。
1.项目1发布的jar包是底层的支撑
2.项目2用于爬取某站点的所有小说
3.项目3是一个web站点,用来提供书名和作者的检索,拿到检索结果后去调用项目1的方法去拿章节列表,或者是章节内容,将这些返回到前台。


项目如何运行:
1.导入novel.spider
2.调用NovelSpiderUtil.setRootPath()方法将配置文件所在的文件夹告诉他,配置文件在项目的config文件中有一份,就可以调用NovelSpiderTest类来调教他了
3.导入novel.book.storage
4.配置数据库地址
5.config目录下有sql文件,创建数据库和表
6.跑BxwxBookStorage来生成数据库中的内容
7.导入novel项目
8.配置数据地址(和步骤4配置的一样)
9.在NovelServiceImpl的static静态块中配置配置文件,看步骤2
10.用Tomcat跑起来,就可以访问了


论坛应该是不允许放地址的,我的站点目前正在运行,是可以用的噢


如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2017-12-5 18:26 | 显示全部楼层
用心讨论,共获提升!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2017-12-13 20:08 | 显示全部楼层
你很6666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2017-12-13 20:12 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-6 17:56 | 显示全部楼层
萌新继续学习,争取早日上榜~
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-6 21:31 | 显示全部楼层

支持软件之家,你们辛苦了
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-7 03:04 | 显示全部楼层
哥辛苦了!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-11 16:35 | 显示全部楼层
我的一楼总是献给度娘
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-14 10:41 | 显示全部楼层
不求风骚惊天下,但求猥琐动世人!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-15 13:51 | 显示全部楼层
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-16 00:06 , Processed in 0.038089 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表