【原创】完整的小说站点爬虫-spring-mybatis-jsoup-http-client
本帖最后由 昕悦阁丶风雪 于 2016-10-27 21:07 编辑更新百度云盘下载地址:https://pan.baidu.com/s/1slMWFxV
首先截个图:
项目初衷:
前段时间迷上了辰东大大的完美世界,所以开始用微信读书来看,可惜太贵啦,后来只能去百度搜索了。
可是wap端的小说站点简直太没节操了,那些广告真是{:1_892:}
实在是不堪忍受。所以想做一个没有任何广告的自己的小说站点(果然,做出的站点也够简单的!)。
然后就付诸实践了!
==========================================
闲话少说,介绍一下如何运行这(几)个项目:
第一个项目:novel.spider(姑且叫他为spider吧:lol)-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跑起来,就可以访问了
论坛应该是不允许放地址的,我的站点目前正在运行,是可以用的噢
现在为这个项目开始录制一个视频:用Java做一个自己的小说网站-后续课程在此更新
米罗 发表于 2016-10-4 19:41
可不可以发个手机软件给我们.
神马手机软件,这个是网页,你可以用手机来访问啊。
请无视名字,,毕竟师出有名啊
昕悦阁丶风雪 发表于 2016-10-11 20:03
jsoup对于这种内容是无能为力的。
你可以看看那些动态内容是不是通多发送网络请求获取到的,如果是这种 ...
htmlunit我也查询到过,但是对一些js解析有很大问题的。第二个Selenium WebDriver 虽然依赖真实浏览器的解析,但是却违背了设计最初的目的,显的过于繁琐了。第三个作者想到的修改返回的respose然后欺骗浏览器去执行修改过的想法可以但是带有页面校验的就没有办法了,比如ASPX 的一个完整性校验机制。 虽然我不懂,但我要支持 不懂,但是支持楼主
虽然我不懂,但我要支持 虽然我不懂,但我也要支持,我也喜欢完美世界 不明觉厉..... 可不可以发个手机软件给我们. 牛逼啊,这东西太好了 可是怎么使用呢小白根本看不懂呢 ?是输入那一段网址啊 ? 我看到有四个下载地址 ,先要先下载吗