新闻查询的小网站

    技术2022-07-11  97

    做一个新闻查询的网站

    概述

    这次的作业是要接着之前的爬虫项目进一步完善。 第一是增加注册登录的功能,第二是查询词支持AND和OR,第三是分页和排序,第四是使用Echarts来做数据分析的图表。另外的一个要求是用户的每一步行动都要记录到数据库里面。 用到的框架主要是express,angular,还有node-analyzer这些。node jieba要用的话需要配置很复杂的环境,没有做到。所以用node-analyzer来顶替。数据库依然是用的MySQL。

    因为这次的项目比较复杂,所以主要是用助教给的项目示例在做。只是在其中添加了一点自己的修改,使得代码能够适应我的新闻数据库的情况。

    注册登录功能

    第一行输入名字,第二行和第三行输入两次密码。 然后用户名必须是独特的,输入已经存在的用户名,会报错。两次密码不一样也会报错。

    用户注册成功之后会在数据库里面留下行为信息,也会在用户名单里面增加一个人。 注册完成之后就是点击左边的Login来登录。

    查询功能

    登录完成之后就来到的查询的页面 输入标题或者内容的关键字,然后and和or是可以选的,布尔表达式就是这么实现的。 如果只填了第一个,就是只搜索这一个关键字。 下面展示的是OR的用法,带有肺炎和经济的新闻都会被找到。

    分页与排序

    这里我们输入“股”,就找到了很多的新闻。分成了很多页。 还可以看到每个新闻的作者和链接还有发布时间。但是由于有的网站并没有标注文章的发布时间,所以时间那里就空着的。 我们点击发布时间降序,可以看到排序就排好了,这里就是我们的排序功能。 来到第二页。分页功能在正常地工作。

    Echarts图表展示功能

    本来计划又四种图表,分别是饼状图、柱状图、折线图还有词云。但是代码出现了一些我不会解决的问题,所以饼状图和柱状图就看不了。只展示折线图和词云。

    在搜索“肺炎”之后,我们找到了很多的新闻,然后这个折线图统计的是疫情这个词在不同的日期里面出现的次数。 这个是根据词语出现的频率生成的词云。分词是用了node-analyzer

    行为记录功能

    下面是在MySQL里面查找用户的名单还有用户行为的记录。 做到这里这次的项目就完成了。

    完结撒花ヾ(≧▽≦*)o

    Processed: 0.773, SQL: 9