nodejs-爬虫

1.安装request、cheerio两个模块(npm i request cheerio)


        request 第三方模块包 发送简单的请求 获取响应
        cheerio 第三方模块包 是nodejs抓取页面的模块

const request = require('request');
const cheerio = require('cheerio');
const fs = require('fs');

//声明一个数组来存放数据
var jsonData = [];
// 第一个网址是你想要数据的网址
request('https://desk.3gbizhi.com/deskMV/', (err, res, body) => {
    // 此处的body是整个html的代码
    var $ = cheerio.load(body);
    //此处与jquery的选择器语法相同,each是循环符合选择的数组
    $('.contlistw li').each(function () {
        // 注意此处的this指向每一个li,找到li里面的img,
        // console.log($(this).find('img').attr('lazysrc'));
        jsonData.push({
            url: $(this).find('img').attr('lazysrc'),
            url2X: $(this).find('img').attr('lazysrc2x'),
            title: $(this).find('img').attr('title')
        })
    })
    // 使用fs模块的api在读取结束后,转化为JSON数据存入其中
    fs.writeFile('./list.json', JSON.stringify(jsonData), err => {
        if (!err) {
            console.log('写入成功');
        }
    })

})

2.使用http来爬取数据

该方式不需要引入第三方模块,使用内置http模块即可;

const https = require('https');
const fs = require('fs');

https.get('https://www.douyu.com/japi/search/api/getHotList',res=>{
    var str = '';
    // 如果数据量比较大,会触发多次,将每次接受的数据都拼接起来
    res.on('data',r=>{
        str += r;
    })
    // 当响应结束时候;
    res.on('end',()=>{
        // console.log(str);
        
        // 建立一个json文件存放数据
        fs.writeFile('./data.json',str,err=>{
            if (!err) {
                console.log('爬取成功');
            }
        })
    })
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值