NodeJS爬虫微博热搜

一、安装node,并下载依赖

去node官网nodejs.org/zh-cn/下载node   node-v查看版本号 

二、搭建服务

demo.js
npm install express 安装依赖
在这里插入图片描述

// 引入express
const express = require('express');
const app = express();
app.get('/index', function(req, res) {
	res.end('爬虫')
})
var server = app.listen(8081, function() {
    var host = server.address().address
    var port = server.address().port
})

三、请求我们要爬取的页面,返回json

请求我们要爬取的页面
npm install superagent
npm install superagent-charset
npm install cheerio
superagent 是用来发起请求的,是一个轻量的,渐进式的ajax api,可读性好,学习曲线低
内部依赖nodejs原生的请求api,适用于nodejs环境下,也可以使用http发起请求
superagent-charset防止爬取下来的数据乱码,更改字符格式 
cheerio为服务器特别定制的,快速、灵活、实施的jQuery核心实现.。 安装完依赖就可以引入了

var superagent = require('superagent');
var charset = require('superagent-charset');
charset(superagent);
const cheerio = require('cheerio');

请求地址:https://s.weibo.com/top/summary
在这里插入图片描述
完整代码:

var superagent = require('superagent');
var charset = require('superagent-charset');
charset(superagent);
var express = require('express');
const cheerio = require('cheerio');
var app = express();
app.get('/index', function(req, res) {
    //设置请求头
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    //类型
    var type = req.query.type;
    //页码
    var page = req.query.page;
    superagent.get('https://s.weibo.com/top/summary')
        .charset('utf-8')
        .end(function(err, sres) {
            var items = [];
            if (err) {
                console.log('ERR: ' + err);
                res.json({ code: 400, msg: err, sets: items });
                return;
            }
            var $ = cheerio.load(sres.text);
              $('div.data table tbody tr td.td-02').each(function(index, element) {
                var $element = $(element);
                var $a = $element.find('a');
                items.push({
                    top: index+1,
                    title:$a.text(),
                    href: $a.attr('href'),
                    // thumbSrc: thumbImgSrc
                });
            });
            res.json({ code: 200, msg: "", data: items });
        });
});
var server = app.listen(8081, function() {
    var host = server.address().address
    var port = server.address().port
})

node index.js 启动服务
输入url
返回数据:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值