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 相关文章推荐
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
jquery miniui 教程 表格控件 合并单元格应用
Nov 25 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
Jan 16 Javascript
在JS中如何调用JSP中的变量
Jan 22 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
elementUi vue el-radio 监听选中变化的实例代码
Jun 28 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 10 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
JavaScript实现alert弹框效果
Nov 19 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
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
Python socket处理client连接过程解析
2020/03/18 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
如何用python免费看美剧
2020/08/11 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
商业活动邀请函
2014/02/04 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
协议书与合同的区别
2014/04/18 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
高中物理教学反思
2016/02/19 职场文书