某公司需要对百度新闻网站首页中中的新闻内容及其相关信息进行获取,保存到本地JSON文件中,以备以后使用。
腾讯新闻首页地址:https://news.baidu.com/
安装node
成功后创建一个新文件夹并在该文件夹下创建xxxx.js和data.json文件
xxxx.js中填入代码
const request = require('request');
const cheerio = require('cheerio');
const fs = require('fs')
const url = 'https://news.baidu.com/';
request(url, function (error, response, body) {
// 如果请求成功且状态码为 200
if (!error && response.statusCode == 200) {
// 使用 cheerio 加载 HTML 文档
const $ = cheerio.load(body);
// 存储获取到的数据
const totalData = []
// 获取hotnews下全部的li元素
$('.hotnews').find('ul').find('li').each(function (index, value){
// 向数组中存放数据
totalData.push({
title: $(value).find('strong').find('a').text(),
href: $(value).find('strong').find('a').attr('href')
})
})
writeFs(totalData)
// 打印结果
console.log(totalData)
}
});
function writeFs(totalData){
fs.writeFile('./data.json', JSON.stringify(totalData), function (err, data) {
if (err) {
throw err
}
console.log('数据保存成功');
})
}
打开终端
配置npm install request cheerio --save
然后 code xxxx.js