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 相关文章推荐
jQuery 性能优化指南 (1)
May 21 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
BootStrap glyphicons 字体图标实现方法
May 01 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
js断点调试经验分享
Dec 08 Javascript
js canvas画布实现高斯模糊效果
Nov 27 Javascript
Vue中watch、computed、updated三者的区别及用法
Jul 27 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
Vue实现图书管理案例
Jan 20 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 数组实例说明
2008/08/18 PHP
关于页面优化和伪静态
2009/10/11 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
javascript计算对象长度的方法
2017/10/25 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python从Excel中读取日期一列的方法
2018/11/28 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
python interpolate插值实例
2020/07/06 Python
用python进行视频剪辑
2020/11/02 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
学习决心书范文
2014/03/11 职场文书
测控技术自荐信
2014/06/05 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
金秋助学感谢信
2015/01/21 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers