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的url截取模块url-extract的使用实例
Nov 18 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
Nodejs回调加超时限制两种实现方法
Jun 09 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 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
ajax php 实现写入数据库
2009/09/02 PHP
php ftp文件上传函数(基础版)
2010/06/03 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
jQuery的学习步骤
2011/02/23 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
《燕子》教学反思
2014/02/18 职场文书
夜不归宿检讨书
2014/02/25 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
运动会宣传稿100字
2015/07/23 职场文书
考研经验交流会策划书
2015/11/02 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang