热门推荐
(一)nodejs+express搭建服务器
2024-12-23 10:20

1.安装node.js

Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/

2.全局安装express-generator

 

3.初始化项目

 
 

node_modules: 所有安装的依赖模块都在这个文件夹里面

public: 所有的前端静态资源 css image js

routes: 放的是路由文件

路由主要定义 url 和资源的映射关系 ( 一一对应关系 )

主要用来接收前端发送的请求响应数据给前端

views: 主要放置 ejs 后端模板文件

app.js: 入口文件(主文件) 总路由 (其他的路由要由它来分配)

package.json: 描述文件,最重要的是依赖的模板列表 dependencies

依赖列表里面的所有模板可以通过 npm i 一次性全部安装

4.添加依赖

在package.json文件里添加需要的依赖,如:request,Cheerio,pg等,再次安装依赖。

1.连接池创建

在代码中引入pg模块,并编写数据库配置

 

2.编写操作数据库的函数

有参数和无参数,该函数实现连接数据库并执行SQL语句

 

3.新闻表和关键词表的设计

新闻表
id_news是每个新闻的id,设为UNIQUE属性唯一标识新闻数据
url是新闻链接
source_name是新闻的来源网站名
source_encoding是新闻的编码方式
title是新闻标题
publish_date是新闻的发表日期
content是新闻内容
关键词表
id_word是关键词id,唯一标识该关键词
id_news是该关键词所属的新闻id,用于两表的连接
word是关键词

 
 

爬取了三个网站:雪球网、中国财经网、网易新闻网。
每一个爬虫的大致步骤都是
1、读取种子页面
2、分析出种子页面里的所有新闻链接,并爬取内容,解析成结构化数据
3、将结构化数据存储到数据库中
下面以中国财经网为例

1.读取种子页面

引入需要的包

 

构造模仿浏览器的request是每个爬虫都包含的部分,定义来header来防止网站屏蔽,并且定义了request函数,调用该函数能够访问指定的url并且能够设置回调函数来处理得到的html页面。

 

爬取种子页面,并且获取其中每一个新闻对应的链接,其对应的代码如下
其中seedurl_news对应的页面上所有新闻,使用seedurl_news.each()对每一块新闻获取其具体url,并且检查了url是否在数据库中已经存储过了,避免重复插入数据

 

2.爬取新闻链接内容

在获取了新闻详情页面后,调用newsGet函数,爬取所需要的内容。
爬取的信息包括:新闻标题、内容、来源、发表时间,并对内容、发表时间等内容的格式进行了处理

 

3.存储结构化数据

执行SQL语句把新闻数据插入news表

 

4.关键词表数据的插入

利用nodejieba.extract()方法,提取新闻内容中的关键词,并剔除停用词。

 
 
 

1.用pgsql查询已爬取的数据(按时间顺序

构建sql查询语句并且调用pgsql.query_noparam进行查询即可,且对标题、关键词、源网站的查询都是按照时间降序排列,最新的新闻排在旧的新闻前面呈现。

 

2、用网页发送请求到后端查询

前端采用文本框样式,获取输入的查询词,并提交给后端
每个文本框及按钮绑定不同的id,便于访问不同的路由

 
 

3.用表格显示查询结果

采用现有的css框架bootstrapTable呈现查询结果

 
 

4.关键词的时间热度分析

从数据库的新闻信息中统计每天包括该关键词的新闻数量,按照时间顺序降序排列

 
 
 
 

5.网站展示

    以上就是本篇文章【(一)nodejs+express搭建服务器】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/5044.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多