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_01_isPlainObject分析与重构
Oct 20 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
Jan 10 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
js中生成map对象的方法
Jan 09 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
JS实现两周内自动登录功能
Mar 23 Javascript
JS传参及动态修改页面布局
Apr 13 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
vue实现的树形结构加多选框示例
Feb 02 Javascript
vue-cli3.X快速创建项目的方法步骤
Nov 14 Javascript
vue.js封装switch开关组件的操作
Oct 26 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版本号
2006/10/09 PHP
又一个php 分页类实现代码
2009/12/03 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
再谈javascript常见错误及解决方法
2016/09/16 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Python使用Django实现博客系统完整版
2020/09/29 Python
使用numba对Python运算加速的方法
2018/10/15 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python3实现单目标粒子群算法
2019/11/14 Python
python3 实现调用串口功能
2019/12/26 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
农业资源与环境专业自荐信范文
2013/12/30 职场文书
写给老师的表扬信
2014/01/21 职场文书
厂长岗位职责
2014/02/19 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
《青山不老》教学反思
2016/02/22 职场文书
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server