抓包+存储数据库+403状态码问题及解决方法

84 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

一、抓包+存储数据库

新建文件 然后打开其终端 输入命令 npm init -y npm i cheerio axios npm i mongoose npm i express

如果有上传文件需npm i multer

然后在该文件下直接开始创建一个文件写文件即可

例如:photo-shop.js

const axios = require("axios").default;
const mongoose = require("mongoose");
const productSchema = new mongoose.Schema(
  {
    name: {
      type: String,
      required: true,
    },
    descriptions: {
      type: String,
    },
    onSale: {
      type: Boolean,
      default: false,
    },
    content: {
      type: String,
      default: "",
    },
    quantity: {
      type: Number,
      default: 10,
    },
    price: {
      type: Number,
      default: 0.0,
    },
    coverImg: {
      type: String,
    },
    productCategory: {
      type: mongoose.SchemaTypes.ObjectId,
      ref: "ProductCategory",
    },
  },
  {
    timestamps: true,
  }
);

const Product = mongoose.model("Product", productSchema);

mongoose.connect("mongodb://localhost:27017/cake-shop").then((res) => {
  console.log(res);
  Product.find({})
    .sort({ _id: -1 })
    .then((res) => console.log(res));

  var products = [];
  axios
    .get(
      "https://www.duitang.com/napi/blog/list/by_filter_id/?include_fields=top_comments%2Cis_root%2Csource_link%2Citem%2Cbuyable%2Croot_id%2Cstatus%2Clike_count%2Csender%2Calbum%2Creply_count&filter_id=%E5%A4%B4%E5%83%8F&start=48&_=1595389274918",
      {}
    )
    .then((res) => {
      console.log(res.data.data["object_list"]);
      res.data.data["object_list"].forEach((p) => {
        var temP = {};
        temP.name = p.album.name;
        temP.descriptions = p.msg;
        temP.price = p.album.like_count * 1;
        temP.coverImg = p.album.covers[0];
        products.push(temP);
      });
      //   console.log(products);
      Product.insertMany(products);
      console.log("插入成功");
    });
});

然后“ node 文件名 ” 即 node photo-data 或者 node photo-data.js 将数据抓包存储到数据库中 ,打开MongoDB的可视化软件即可查看到存储到对应数据库内的数据

然后可以npm run start/dev 运行该数据库去写接口,写接口的步骤方法可以查看7.6号的文件(gitee上有)

二、状态码问题及解决方法(403)

1.解决网络图片加载出现403错误

<head></head>里面加一个

<meta name="referrer" content="no-referrer"/>

作用是:在我们发起请求的时候不要带上我们本地的请求头,因为有一些服务器端会在webpack加上一个配置,这个配置会验证当前来源(来源是不是他们的网站),如果不是,就不让你读取它的信息