nodejs之简单的爬数据
程序员文章站
2022-05-30 16:31:09
...
nodejs 之简单爬数据
-
准备
- cheerio 插件
cheerio 是一个为服务器特别定制的,快速、灵活、实施的 jQuery 核心实现方案。 - axios 插件
axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
- cheerio 插件
-
代码
const fs = require("fs"); const cheerio = require("cheerio"); const axios = require("axios").default; // 发起一个网络请求获取数据 const books = []; axios .get( "https://www.17k.com/top/refactor/top100/01_subscribe/01_subscribe__top_100_pc.html" ) //此链接为17k小说网的排行榜网址 .then((res) => { const $ = cheerio.load(res.data); $(".BOX") .eq(0) // 获取指定索引位置的数据,返回一个jq实例 .find("table tr") // find 查找符合元素选择条件的数据 .each(function (index) { if (index > 0) { // 不取第一项 let book = {}; book.id = index; book.title = $(this).find("td").eq(2).find("a").text(); book.link = "https:" + $(this).find("td").eq(2).find("a").attr("href"); fs.mkdirSync("./books/" + book.title, { recursive: true, }); books.push(book); } }); fs.writeFileSync("./books.json", JSON.stringify(books)); }); ```
下一篇: xshell连接服务器提示拒绝密码