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 相关文章推荐
Array.prototype 的泛型应用分析
Apr 30 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
Apr 07 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
JS实现移动端整屏滑动的实例代码
Nov 10 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
浅谈mvvm-simple双向绑定简单实现
Apr 18 Javascript
node.js部署之启动后台运行forever的方法
May 23 Javascript
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
echarts浮动显示单位的实现方法示例
Dec 04 Javascript
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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php session和cookie使用说明
2010/04/07 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
PHP 裁剪图片
2021/03/09 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
Mootools 1.2教程 事件处理
2009/09/15 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
webpack入门必知必会
2017/01/16 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
简单谈谈Python中的闭包
2016/11/30 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
Python网页解析器使用实例详解
2020/05/30 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
安全教育心得体会
2013/12/29 职场文书
静心口服夜广告词
2014/03/20 职场文书
五四青年节演讲稿
2014/05/26 职场文书
党员年度个人总结
2015/02/14 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python