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 相关文章推荐
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
读jQuery之十四 (触发事件核心方法)
Aug 23 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
May 16 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
javascript多物体运动实现方法分析
Jan 08 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 Javascript
Angular6 写一个简单的Select组件示例
Aug 20 Javascript
vue项目打包部署到服务器的方法示例
Aug 27 Javascript
微信小程序视图容器(swiper)组件创建轮播图
Jun 19 Javascript
JS实现滑动导航效果
Jan 14 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
微信小程序开发探究
2016/12/27 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
详解vue组件开发脚手架
2018/06/15 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
爱牙日活动总结
2014/08/29 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
庆祝国庆节标语
2014/10/09 职场文书
怎么用Python识别手势数字
2021/06/07 Python
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏