//node中的不同模块
var http = require('http');
//导入axios
const axios = require('axios')
//导入cheerio读取html的节点
const cheerio = require('cheerio')
let hotNews = [];
//第一种方式 用axios去读取页面信息
axios.get('http://news.baidu.com/').then((res) => {
//console.log(res.data)
//将axios请求到的页面生成结构,然后我们就可以像 jquery一样去遍历dom中的节点了。
let $ = cheerio.load(res.data);
//读取百度新闻页面左侧的热点新闻
$('div#pane-news ul li a').each((index, item) => {
// cherrio中$('selector').each()用来遍历所有匹配到的DOM元素
// 参数idx是当前遍历的元素的索引,ele就是当前便利的DOM元素
let news = {
title: $(item).text(), // 获取新闻标题
href: $(item).attr('href') // 获取新闻网页链接
};
hotNews.push(news) // 存入最终结果数组
//console.log(hotNews)
});
})
//创建本地服务器
http.createServer((req, res) => {
res.writeHead(200, {
"content-type": "text/json,charset=UTF8",
"Access-Control-Allow-origin": "*",
})
hotNews = JSON.stringify(hotNews);
res.write(hotNews);
res.end()
}).listen(3000, () => {
console.log("你的项目已启动")
})