Node.js 利用cheerio制作简单的网页爬虫示例


Posted in Javascript onMarch 01, 2018

本文介绍了Node.js 利用cheerio制作简单的网页爬虫示例,分享给大家,具有如下:

1. 目标

  1. 完成对网站的标题信息获取
  2. 将获取到的信息输出在一个新文件
  3. 工具: cheerio,使用npm下载npm install cheerio
  4. cheerio的API使用方法和jQuery的使用方法基本一致
  5. 如果熟练使用jQuery,那么cheerio将会很快上手

2. 代码部分

介绍: 获取segment fault页面的列表标题,将获取到的标题列表编号,最终输出到pageTitle.txt文件里

const https = require('https');
const fs = require('fs');
const cheerio = require('cheerio');
const url = 'https://segmentfault.com/';

https.get(url, (res) => {
  let html = '';
  res.on('data', (data) => {
    html += data;
  });
  res.on('end', () => {
    getPageTitle(html);
  });
}).on('error', () => {
  console.log('获取网页信息错误');
});

function getPageTitle(html) {
  const $ = cheerio.load(html);
  let chapters = $('.news__item-title');
  let data = [];
  let index = 0;
  let fileName = 'pageTitle.txt';
  for (let i = 0; i < chapters.length; i++) {
    let chapterTitle = $(chapters[i]).find('a').text().trim();
    index++;
    data.push(`\n${index}, ${chapterTitle}`);
  }
  fs.writeFile(fileName, data, 'utf8', (err) => {
    if (err) {
      console.log('fs文件系统创建新文件失败', err);
    }
    console.log(`已成功将获取到的标题放入新文件${fileName}文件中`)
  })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
关于Vue.js一些问题和思考学习笔记(2)
Dec 02 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
原生js实现无缝轮播图效果
Jan 11 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
May 28 Javascript
详解vue-cli本地环境API代理设置和解决跨域
Sep 05 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
详解Vue的ref特性的使用
Jan 24 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue父组件向子组件传递多个数据的实例
Mar 01 #Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 #Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 #Javascript
vue 实现类似淘宝星级评分的示例
Mar 01 #Javascript
vue-star评星组件开发实例
Mar 01 #Javascript
浅谈Angular 的变化检测的方法
Mar 01 #Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 #Javascript
You might like
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
Symfony控制层深入详解
2016/03/17 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
vue二级路由设置方法
2018/02/09 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
javascript实现计算器功能
2020/03/30 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
女子职高个人自荐书
2014/02/01 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
活动总结书怎么写
2015/05/11 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL