基于网络爬虫和SpringBoot框架的晋江文学小说小型网站项目

一、Python网路爬虫技术的设计与实现

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,常可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。项目中,主要采取Scrapy框架实现一个爬虫,抓取晋江文学网站的热门小说数据。其主要步骤分为四步:

第一步:新建项目——scrapy startproject 项目名称(新建一个新的爬虫项目)

第二步:明确目标——编写items.py:明确抓取的目标,即晋江文学网站小说的书名、作者、链接url、主题、收藏量、阅读量、总字数、简介

第三步:制作爬虫,爬取网页——使用基于浏览器自动化的一个模块:selenium模块,便捷的获取晋江文学小说网站中动态加载数据。利用xpath和正则表达式,解析网页数据

第四步:设计管道存储爬取数据——

基于管道持久化存储的编码流程:

①数据解析。

②在item类中定义相关的属性。

③将解析的数据封装存储到item类型的对象中。

④将item类型的对象提交给管道进行持久化存储的操作。

⑤在管道类的proce_item中要将其接收到的item对象中存储的数据进行持久化存储操作。

⑥在配置文件中开启管道。

二、数据库设计与实现

1、 xiaoshuos表结构

2、Cart表结构

3、User表结构

三、Spring Boot框架的设计与实现

1、MySQL数据库的实现

本项目使用了Python和Java两种语言,而数据库是连接它们的桥梁。数据是整个项目的核心,没有数据库,就没有数据,没有数据,就没有该项目。项目使用的数据库是mysql,连接池使用的alibaba的driud,并在JdbcConfig中完成数据库的配置。

2、SpringBoot框架

 

四、结果展示

本项目采用流行的B/S架构,用户通过浏览器发送的请求都将传送到服务器端进行处理,服务器主要包括数据库以及服务端后台软件。

1、注册登录功能

       登录时,在用户输入账号和密码信息后,浏览器将数据传给服务器,服务器对数据进行检查,若数据库不存在该用户名或用户输入的密码和数据库的密码匹配不上,则服务器会返回相对应的错误提示到浏览器,来提示用户,重新输入。若用户输入的账号和密码都正确,则验证成功,跳转到首页。

       注册账号时,浏览器将用户输入的账号、密码和确认密码的信息传递给服务器,服务器首先在数据库中查找是否有此账号的存在,若该账号已存在,则返回“该账号已存在”的提示到浏览器,若账号不存在,则将用户输入的两次密码进行验证,若两次密码都一样,用户注册的信息正确,数据库会添加该用户的信息,浏览器接收到用户注册成功信息后,也跳转至首页。

登录、注册界面:

2、热门小说推荐

项目基于小说点击量、浏览量数据进行排名,得出的点击量浏览量最高的前8本小说,推荐给读者,读者可以在小说热门推荐页直接对感兴趣的热门小说进行点击,浏览小说的简介。

3、相似小说推荐

项目基于对不同小说进行主题分类,向对某一或多种主题感兴趣的读者进行推荐,使读者更能方便找到和自己兴趣口味的小说。

   

4、看了又看推荐(收藏功能)

当用户浏览小说信息时,可以点击【收藏】,收藏自己感兴趣的小说,浏览器将用户的姓名和小说的id传递到服务器,服务器接收到消息后,在数据库中查找该小说和该用户的信息,并修改用户表中,num值(+1),在cart表中,添加这条记录(用户名,小说书名、作者)。收藏成功后,用户可以在个人书架页面,查看到这本小说。如果用户不需要此书,可在个人书架点击【取消收藏】,同理,服务器接收到消息后,在数据库中查找该小说和该用户的信息,并修改用户表中,num值(-1),在cart表中,删除这条记录。

当用户选择收藏小说时,浏览器也会提示用户“你确定要收藏这本书吗?”

5、模糊搜索书名

当读者想要查找是否有某一本书时,可以在搜索栏输入要查询的书名(模糊查询),服务器识别后在,如果在数据库里查找到有相同字符的书名,则向读者展示,没有查询到则报错。

(1)用户输入“游戏”字符串

(2)数据库查询到带有“游戏”字符的小说有2本,《我在无限游戏里封神》和《穿进赛博游戏后干掉BOSS成功上位》

  

6、浏览小说信息功能(包括了分页查询)

       为了美化页面,项目使用了PageHelper。PageHelper是mybatis的一个插件,其作用是更加方便地进行分页查询。PageHelper的好处是,它是跨平台实现的,无论是使用mysql还是oracle都可以使用PageHelper来进行分页。

      当用户登录成功进入首页后,可浏览晋江文学热门小说的基本信息,其主要包括了小说的书名、作者、主题、总字数、阅读量、收藏量。

      用户还可以查看晋江文学热门小说主题,本项目使用sql分类查询和统计语句,将小说数据根据主题进行分类,并统计主题下小说的数量、总阅读量和总收藏量。以方便用户直接查看某一类小说主题下的小说信息。

      若用户在浏览小说首页或小说详情主题页面时,对某一本小说感兴趣,可以进入小说详情页,查看小说的简介,进一步了解小说的信息。

五、项目总结

       项目利用热门的网络爬虫技术爬取数据,MySQL数据库持久化存储数据和最新的SpringBoot框架进行项目构建,并结合SpringMVC等热门框架技术,向读者推荐当前比较热门的小说,相似度高的同主题小说,帮组读者能够更好、更快的选择适合自己的小说。

        在爬取晋江小说文学网站的小说数据时,我对不同主题的小说进行了判断和分类,经过简单的数据处理后,将数据持久化存储在MySQL数据库中。由于SpringBoot技术为用户提供了自动装配功能,只需要遵守约定就可以减少甚至不需要再进行繁琐的配置。相较于Spring,SpringBoot提供的自动装配节约了我们大量的开发时间,提高了开发效率。结合SpringMVC框架,我将项目主要分为模型model(javabean)、视图view(jsp/img)、控制器Controller(Action/servlet),大大降低了耦合,让代码合理分层,方便后期维护。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值