nodejs抓取动态网页( Splider.js文件入口是splider方法,首先根据传入方法)

优采云 发布时间: 2021-12-09 22:23

  nodejs抓取动态网页(

Splider.js文件入口是splider方法,首先根据传入方法)

  

const cheerio = require('cheerio');

const httpHelper = require('./httpHelper');

function getQBJok(htmlStr){

let $ = cheerio.load(htmlStr);

let jokList = $('#content-left').children('div');

let rst = [];

jokList.each((i, item)=>{

let node = $(item);

let titleNode = node.find('h2');

let title = titleNode ? titleNode.text().trim() : '匿名用户';

let content = node.find('.content span').text().trim();

let likeNumber = node.find('i[class=number]').text().trim();

rst.push({

title : title,

content : content,

likeNumber : likeNumber

});

});

return rst;

}

async function splider(index = 1){

let url = `https://www.qiushibaike.com/8hr/page/${index}/`;

let htmlStr = await httpHelper.getHtml(url);

let rst = getQBJok(htmlStr);

return rst;

}

splider(1);

  在获取尴尬百科网页的信息时,首先在浏览器中分析源码,定位到你需要的标签,然后提取出该标签的文本或属性值,从而完成对网页的分析。

  Splider.js 文件的入口是spliter 方法。首先根据传入的方法的索引构造出尴尬百科的url,然后获取该url的网页源代码,最后将获取的源代码传递给getQBJok方法进行分析。本文仅分析各文字笑话的作者、内容、喜好。

  直接运行Spliter.js文件,抓取第一页的笑话信息。然后你可以改变spliter方法的参数来抓取不同页面的信息。

  在上述代码的基础上,使用koa和vue2.0构建一个浏览文本的页面,效果如下:

  

  源码已经上传到github。下载链接: ;

  项目依赖节点 v7.6.0 及以上。首先,从 Github 克隆整个项目。

  

git clone https://github.com/StartAction/SpliderQB.git

  克隆后,进入项目目录,运行以下命令。

  

node app.js

  5. 总结

  通过实现完整的爬虫功能,加深了对Node的理解,实现的部分语言使用了es6语法,从而加快了es6语法的学习进度。另外,在这个实现中,遇到了Node的异步控制的知识。本文使用了 async 和 await 关键字,这也是我最喜欢的。但是,在 Node.js 中有几种方法可以实现异步控制。关于具体的方法和原则,有时间我再总结一下。

  相关文章

  我猜你会喜欢

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线