自己在官网上搞数据存为JSON 然后插入到MySQL里
1 直接爬官网的数据
// 需求: (1) 读取页面的html
// (2) 把数据存入数据库,或存入data.json
//request模块: 发起http请求
// 安装 : cnpm i request --save
const request = require("request");
// 把html代码转为类似jquery对象
const cheerio = require("cheerio");
const fs = require("fs");
const ms = require("./miData.json");//这是创建的空JSON文件 以便爬好直接存入进去
// 读取页面的html
function requestHtml() {
return new Promise(function(resolve,reject){
// request("https://www.vmall.com/huawei?cid=10618", function (err, res, data) {
request("https://www.mi.com", function (err, res, data) {
//这是爬取的官网地址
console.log(data.length,1)
let $ = cheerio.load(data);
let miData = [];//声明一个空数组用来接收爬取的数据
// console.log($(".site-header .header-nav .nav-item .item-children li").find(".title").text())
//这个是找到爬数据对应的类型
$(".site-header .header-nav .nav-item .item-children li").each(function (index) {
let goodsDetail = {
id: index + 1,
title: $(this).find(".title").text(),
desc: $(this).find(".desc11").text(),
price: $(this).find(".price").text()
}
miData.push(goodsDetail);
})
// // data已经构造完成
resolve(miData)
})
})
}
function writeData(data) {
//把上一步的数据写入miData.json
// console.log(2)
fs.writeFile("./miData.json",JSON.stringify(data),function(err){
if (err){
console.log('error')
}else{
console.log('success')
}
})
}
async function spider() {
let data = await requestHtml();
writeData(data);
}
spider();
// json结构
// [{
//