如何用js及nodejs写一个简易爬虫

前言

  • 爬虫又叫网络蜘蛛,可以去其他网站上进行数据抓取
  • 国内做爬虫的常用开发语言:python、java、php等,其实nodejs也能写爬虫
    在写爬虫之前,需要先了解一个nodejs的模块:fs
  • fs是文件系统,可以操作系统文件
  • 使用之前需要先引入fs模块:
    const fs = require(“fs”);
  • fs.writeFileSync()可以船机文件,并写入文件内容,比如:
    fs.writeFileSync("./测试1.txt",“这是一段测试的文字”);
  • 参数一表示创建的文件名
  • 参数二表示创建的文件的内容

准备工作

nodejs写爬虫需要安装两个插件:

  • axios:这个插件是用来发起网络请求的
  • cheerio:用来对字符串做解析,可以把字符串转换为类jQ对象的形式
    安装方法:
  • 可以在cmd内输入命令:
    npm i axios cheerio 回车安装
  • 也可以在编辑器内的终端输入上面命令安装
    以上装备工作就已经完成了,我们以一个小说网站举例
const fs = require("fs");
const cheerio = require("cheerio");
const axios = require("axios").default;
//定义一个数组,用来放爬回的数据
const books = [];
//发起一个get请求,里面输入你要爬的网站的网址
axios.get("https://www.hongxiu.com/rank/hotsales").then(function (res) { 
//res.data 是爬回来的页面结构代码,通过cheerio.load转换一下,就可以使用jquery的语法操作了
    const $ = cheerio.load(res.data);
    //这里是选择页面结构的标签,根据具体情况按需选择
    //jquery的each遍历的回调函数的第一参数是表示索引
    $(".book-img-text ul li").each(function (index) { 
        let book = {};
        //给每个数据一个id
        book.id = index;
        //保存图片的路径
        book.img = "https:"+$(this).find(".book-img-box a img").attr("src");
        //保存一个标题
        book.title = $(this).find(".book-mid-info h4 a").text();
        //把对象放进数组中
        books.push(book);
     });
    //创建一个json文件,把数组转成json字符,写入创建的json文件内
     fs.writeFileSync("./pachong.json",JSON.stringify(books));
 });
 //以上就是一个简单的爬虫
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值