JS爬取新闻内容——初学者的历程(六)

今天老师又发出了关于项目的示例代码。这次的代码对于如何输入标题关键词查询数据库已爬取内容进行了示例。
在我之前的尝试中,我是通过js代码先使得服务器连接mysql然后进行相应的操作。在运行时需要在命令行种运行服务器,然后再再网站中进行操作。
但是这次老师给出的效果就是高出一个档次的那种。
首先通过express脚手架搭建一个search_site文件夹如下:
在这里插入图片描述
然后将之前写好的mysql.js放到这个目录下。
在这里插入图片描述
然后在命令行种依次进行以下操作:
在这里插入图片描述
这样就完成了网站的搭建。
然后对search_site中routes文件夹下的index.js进行修改:
在这里插入图片描述
将index.js修改为如下代码:

var express = require('express');
var router = express.Router();
var mysql = require('../mysql.js');

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', { title: 'Express' });
});

router.get('/process_get', function(request, response) {
    //sql字符串和参数
    var fetchSql = "select url,source_name,title,author,publish_date " +
        "from fetches where title like '%" + request.query.title + "%'";
    mysql.query(fetchSql, function(err, result, fields) {
        response.writeHead(200, {
            "Content-Type": "application/json"
        });
        response.write(JSON.stringify(result));
        response.end();
    });
});
module.exports = router;

接着在search_site的public目录下创建一个search.html。具体代码如下:

<!DOCTYPE html>
<html>
<header>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</header>

<body>
    <form>
        <br> 标题:<input type="text" name="title_text">
        <input class="form-submit" type="button" value="查询">
    </form>
    <div class="cardLayout" style="margin: 10px 0px">
        <table width="100%" id="record2"></table>
    </div>
    <script>
        $(document).ready(function() {
            $("input:button").click(function() {
                $.get('/process_get?title=' + $("input:text").val(), function(data) {
                    $("#record2").empty();
                    $("#record2").append('<tr class="cardLayout"><td>url</td><td>source_name</td>' +
                        '<td>title</td><td>author</td><td>publish_date</td></tr>');
                    for (let list of data) {
                        let table = '<tr class="cardLayout"><td>';
                        Object.values(list).forEach(element => {
                            table += (element + '</td><td>');
                        });
                        $("#record2").append(table + '</td></tr>');
                    }
                });
            });

        });
    </script>
</body>

</html>

在这里插入图片描述
然后在浏览器中访问127.0.0.1:3000/search.html
在这里插入图片描述
输入关键词“新冠”,就会返回所有标题中带有新冠字样的信息,并且以表格的形式呈现(这才是与我之前代码差距最大的地方)
在这里插入图片描述
具体如果要新增爬虫按钮其实我觉得操作和我之前的那个方法差不多,我觉得就没有必要再尝试了。
在这里插入图片描述
这里还有老师给出的可以尝试的其他扩展。只能说尽力试试,至少现在我是没有一点头绪的。
这次也就是把老师给的代码复制并应用了一遍。不是自己的成果。
打算有时间把之前我写的那个网站也改成现在老师给的这样用express脚手架捆绑在一起的这种,这应该是我目前能做到的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值