基于第一个爬虫项目,现在大作业要求如下:

首先要在项目文件的终端中输入 npm install 将安装所有依赖的node modules。
然后再安装的过程中出现了无法安装nodejieba的问题,于是按照助教给的方法!

我们是要对需要对用户的信息进行保存并且还要使得用户可以有注册和登录的操作,并将用户的账号密码保存在数据库中,新建立两个mysql表用来保存用户的操作日志,具体过程如下:


然后是相应的mysql配置文件:

接下来是要对用户的注册登录进行完善,完全用户可注册登录网站,非注册用户不可登录查看数据,对于登录和注册时的错误也要有适当的提示。



引入angular.js,这样登陆成功会跳转到news.html页面。
然后是注册页的代码:
同时我们还要实现注册用户和非注册用户对网站访问的区别,在登录页路由中,调用userDAO,然后保存session信息达到记录特定用户操作日志的效果。注册操作和退出登录的实现,注意退出时清除session。UserDAO的代码实现以及session的设置等都如下:







然后在search.html中写好查询页面代码,然后再news.html中将其引入,来实现查询功能。
<form class="form-horizontal" role="form">
<div class="row" style="margin-bottom: 10px;">
<label class="col-lg-2 control-label">标题关键字</label>
<div class="col-lg-3">
<input type="text" class="form-control" placeholder="标题关键字" ng-model="$parent.title1">
</div>
<div class="col-lg-1">
<select class="form-control" autocomplete="off" ng-model="$parent.selectTitle">
<option selected="selected">AND</option>
<option>OR</option>
</select>
</div>
<div class="col-lg-3">
<input type="text" class="form-control" placeholder="标题关键字" ng-model="$parent.title2">
</div>
</div>
<div class="row" style="margin-bottom: 10px;">
<label class="col-lg-2 control-label">内容关键字</label>
<div class="col-lg-3">
<input type="text" class="form-control" placeholder="内容关键字" ng-model="$parent.content1">
</div>
<div class="col-lg-1">
<select class="form-control" autocomplete="off" ng-model="$parent.selectContent">
<option selected="selected">AND</option>
<option>OR</option>
</select>
</div>
<div class="col-lg-3">
<input type="text" class="form-control" placeholder="内容关键字" ng-model="$parent.content2">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-9">
<button type="submit" class="btn btn-default" ng-click="search()">查询</button>
</div>
</div>
</form>
<!--显示查询结果-->
<div ng-show="isisshowresult">
<table class="table table-striped">
<thead>
<tr>
<td>序号</td>
<td>标题</td>
<td>作者</td>
<!-- <td>内容</td>-->
<td>关键词</td>
<td>链接</td>
<td>发布时间</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="(key, item) in items">
<td>{
{
index+key}}</td>
<td>{
{
item.title}}</td>
<td>{
{
item.author}}</td>
<!-- <td>{
{
item.content}}</td>-->
<td>{
{
item.keywords}}</td>
<td>{
{
item.url}}</td>
<td>{
{
item.publish_date}}</td>
</tr>
</tbody>
</table>
<div class="row">
<!-- <div class="form-group">-->
<div class="pull-left" style="margin-top: 12px;">
<button type="submit" class="btn btn-primary" ng-click="searchsortASC()" >发布时间升序</button>
<button type="submit" class="btn btn-primary" ng-click="searchsortDESC()">发布时间降序</button>
</div>
<!-- </div>-->
<div class="pull-right">
<nav>
<ul class="pagination">
<li>
<a ng-click="Previous()" role="button"><span role="button">上一页</span></a>
</li>
<li ng-repeat="page in pageList" ng-class="{active:isActivePage(page)}" role="button">
<a ng-click="selectPage(page)" >{
{
page }}</a>
</li>
<li>
<a ng-click="Next()" role="button"><span role="button">下一页</span></a>
</li>
</ul>
</nav>
</div>

本文介绍了使用Node.js完成的爬虫项目大作业,包括通过npm安装依赖,解决nodejieba安装问题,创建MySQL数据库保存用户信息和操作日志,实现用户注册、登录功能,以及查询功能支持布尔表达式。项目中,注册成功的用户会被重定向到news.html页面,未注册用户无法查看数据。此外,还利用Angular.js、session和UserDAO实现了分页和数据分析图表,如柱状图、饼状图和词云。尽管遇到一些问题,如部分图表无法显示,但整个项目提供了丰富的学习体验。
最低0.47元/天 解锁文章
812





