axios
官网对它的解释说,它是可以靠 XMLhttpRequest
运行在浏览器中,也可以在后台依靠 http
模块运行在服务器中请求。
它基于 ES6 的 promise
的 http 库
从浏览器中创建 XMLHttpRequests
从 node.js
创建 http
请求
支持 Promise API
拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换 JSON 数据
客户端支持防御 XSRF
https://www.kancloud.cn/yunye/axios/234845
express
被称之为最好的 http
模块封装。兼容原生的node内的 http
模块,可以与原生的方法一起用。只不过比原生的更方便一些。
1 2 3 4 5 6 7 8 9 10 11 12 13
| const express = require("express"); const app = express(); app,set() //可以设置一些模板文件。 app.use("/view",express.static("./view")) //这个表示将view目录下的文件由服务器托管。 // `express.static` 为 `expresss`模块唯一的内置中间件,可以将指定文件目录下的文件交由服务器托管。可以设置虚拟文件夹 app.use() //注册中间件。 app.get("/",(req.res)=>{ }) app.listen("3000",()=>{ console.log("服务器跑在 http://127.0.0.1:3000 端口上了") })
|
cheerio
可以类似于jQuery中,传入一个dom元素,就可以获取它那中的某个元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| const express = require('express'); const cheerio = require('cheerio'); const axios = require('axios'); const path = require("path"); const template = require('art-template') const app = express(); app.get("/book", (req, res) => { axios.get("https://www.biquke.com/bq/0/990/").then((result) => { let $ = cheerio.load(result.data)
let book = []; $("#list dd a").each(function (i, e) { let obj ={ title:$(e).text(), herf:$(e).attr('href') } book.push(obj); }) let temstr = template(path.join(__dirname,'views/index.html'),{book:book}) res.send(temstr); }) }) app.listen("3002",()=>{ console.log("爬虫服务器开启在http:127.0.0.1:30002上了") })
|
cors包模块
可以解决跨域问题,引入 cors 包
1 2 3
| const cors = require('cors') app.use(cors())
|
评论加载中