Nodejs爬取新闻列表
2018-07-12 本文已影响1人
聪明的汤姆
爬取地址
使用到的库
- superagent (页面数据下载)
- cheerio (页面数据解析)
代码
app.js
// 引入依赖
const superagent = require('superagent'); // superagent是nodejs里一个非常方便的客户端请求代码模块
const cheerio = require('cheerio'); // 可以理解为一个Node.js版本的Jquery
// 爬取地址
const url = 'https://www.thepaper.cn/';
// 读取页面数据
superagent.get(url).end((err, res) => {
if (err) throw Error(err);
let postlist = getFilterHtml(res.text);
// 存入数据库操作...
})
// 过滤数据
function getFilterHtml(html) {
let $ = cheerio.load(html); // 使用cheerio
let postList = []; // 存放新闻列表的数组
// F12分析后的节点数据,用Jquery的语法进行过滤、摘取
$('#listContent .news_li').each((index, item) => {
let elem = $(item);
let post = {
icon: elem.find('.tiptitleImg img').attr('src'),
title: elem.find('h2 a').text(),
intro: elem.find('p').text(),
link: elem.find('h2 a').attr('href'),
target: elem.find('.pdtt_trbs a').text(),
hot: elem.find('.pdtt_trbs .trbszan').text()
}
postList.push(post);
})
return postList;
}