nodejs制作小爬虫功能示例


Posted in NodeJs onFebruary 24, 2020

本文实例讲述了nodejs制作小爬虫功能。分享给大家供大家参考,具体如下:

1 安装nodejs

2 安装需要模块

npm install request cheerio

3 新建js文件

4 引入

const request=require("request")
const cheerio=require("cheerio")

5 利用request模块发送请求

request('http://news.dgut.edu.cn/dgut/xydt/news_list.shtml',function(err,res){
  if(err)
  {
    console.log('请求出错');
  }
  else
  {
    var $ = cheerio.load(res.body, {decodeEntities: false});
    $('.listList').children('ul').children('li').each(function(){ //找到li元素对象然后通过each遍历
      var newsTitle = $(this).children('a').text(); //得到<a>标签的文字
      var newsTime= $(this).children('span').eq(1).text();//得到第二个<span>标签的文字
      var newsUrl= "http://news.dgut.edu.cn"+$(this).children('a').attr('href');//得到<a>标签的href的值
    item++;
    console.log("已爬取"+item+"条记录");
    });
  }
});

一个小爬虫案例就完了

附上完整代码

request('http://news.dgut.edu.cn/dgut/xydt/news_list.shtml',function(err,res){
  if(err)
  {
    console.log('请求出错');
  }
  else
  {
    var $ = cheerio.load(res.body, {decodeEntities: false});
    $('.listList').children('ul').children('li').each(function(){ //找到li元素对象然后通过each遍历
      var newsTitle = $(this).children('a').text(); //得到<a>标签的文字
      var newsTime= $(this).children('span').eq(1).text();//得到第二个<span>标签的文字
      var newsUrl= "http://news.dgut.edu.cn"+$(this).children('a').attr('href');//得到<a>标签的href的值
    item++;
    console.log("已爬取"+item+"条记录");
    });
  }
});

下面的带数据库

const request=require("request")
const cheerio=require("cheerio")
const mysql=require('mysql')
const db=mysql.createPool({host:'120.79.5554',user:'root',password:'root',database:'pachong'});
var item=0;
request('http://news.dgut.edu.cn/dgut/xydt/news_list.shtml',function(err,res){
  if(err)
  {
    console.log('请求出错');
  }
  else
  {
    var $ = cheerio.load(res.body, {decodeEntities: false});
    $('.listList').children('ul').children('li').each(function(){ //找到li元素对象然后通过each遍历
      var newsTitle = $(this).children('a').text(); //得到<a>标签的文字
      var newsTime= $(this).children('span').eq(1).text();//得到第二个<span>标签的文字
      var newsUrl= "http://news.dgut.edu.cn"+$(this).children('a').attr('href');//得到<a>标签的href的值
      console.log(newsTitle,newsTime,newsUrl)
      db.query(`INSERT INTO news (newsTitle, newsTime, newsUrl) VALUE('${newsTitle}', '${newsTime}','${newsUrl}')`,function(err,data){
      if(err)
      {
        console.log("数据库连接错误");
      }
    })
    item++;
    console.log("已爬取"+item+"条记录");
    });
  }
});

希望本文所述对大家node.js程序设计有所帮助。

NodeJs 相关文章推荐
nodejs实用示例 缩址还原
Dec 28 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 NodeJs
node快速搭建后台的实现步骤
Feb 18 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 #NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 #NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 #NodeJs
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
Feb 06 #NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 #NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 #NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 #NodeJs
You might like
php中的mongodb select常用操作代码示例
2014/09/06 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
绘画专业自荐信范文
2014/02/23 职场文书
超市商业计划书
2014/05/04 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
小学主题班会教案
2015/08/17 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
一文搞懂MySQL索引页结构
2022/02/28 MySQL