前提

首先你要学会用dom节点爬数据,如果你不明白请看接下来的代码,请赶紧学会。
(一)、我们拿王者荣耀的例子来看

(2)、打开按键盘的F12打开控制台,先查看是否有jquery函数库

//pack.json"dependencies": {"cheerio": "^1.0.0-rc.10","iconv-lite": "^0.6.3","koa": "^2.13.4","koa-body": "^4.2.0","koa-router": "^10.1.1","koa-static": "^5.0.0","mongodb": "^4.3.0","mysql": "^2.18.1"}

这样说明该网站拥有jquery函数库。如果没有的请先动态插入一个script标签然后设置他的属性’src’导入jquery函数库.
(3)、找到金蝉对应元素,然后确定目标后,开始如下操作。

以上就是我们通过操作dom来获取网页中的元素。

主体

ok,完成了上部分的操作同时看了我前两部分的博客的同学,现在已经有一定的基础来进行通过nodejs爬数据了。

思路
1.首先发送数据和接收服务器上的数据,其主要核心技术:ajax
2.拿到数据后,连接数据库的模块:mongodb
3.连接数据库后,将数据存入数据库中。

代码,如下:

//引入模块
var https = require('https')
var fs = require('fs');
var iconv = require('iconv-lite')
var cheerio = require('cheerio');
//连接数据库的模块
var mongodb = require('mongodb');
var client = new mongodb.MongoClient('mongodb://localhost:27017');
var url = "https://pvp.qq.com/web201605/herolist.shtml"
var cc = [];https.get(url, function (res) {var chunks = []if (res.statusCode == 200) {res.on("data", function (chunk) {chunks.push(chunk);})res.on("end",async () => {//将获取的代码整合在一起var str = Buffer.concat(chunks);//处理乱码var data = iconv.decode(str, 'gbk');var $ = cheerio.load(data);var text = $('ul.herolist a')var arr = [];//获取每个英雄的个人页面,和名字for (var i = 0; i < text.length; i++) {arr.push({herf: "https://pvp.qq.com/web201605/" + $(text[i]).attr("href"),name: $(text[i]).text()})}//连接数据库并添加client.connect(err=>{if(err){console.error(err);}else{                 client.db('data').collection('list').insertMany(arr).then(res=>{console.log(res);client.close();})}})})}res.on('error', err => {console.error(err);})
})

上面就是我们的nodejs爬数据的核心代码。

用nodejs爬数据相关推荐

  1. nodejs之简单的爬数据

    nodejs 之简单爬数据 准备 cheerio 插件 cheerio 是一个为服务器特别定制的,快速.灵活.实施的 jQuery 核心实现方案. axios 插件 axios 是一个基于 promi ...

  2. 记录一次nodejs爬取《17吉他》所有吉他谱

    记录一次nodejs爬取<17吉他>所有吉他谱(只探讨技术) 突然就想扒一下吉他谱了,说做就做哈哈,中间也是没有想象中的顺利啊,出现了各种意想不到的坑,包括老生常谈的nodejs异步写法, ...

  3. Node.js之Cheerio爬数据!~

    爬数据!~ 本意是想写一些接口感受一下Nodejs魅力,奈何没有数据,延伸了一下爬虫数据采集,让咱的数据库不太假. cheerio 数据截取 是的,没想到有一天咱也会爬别人玩~ 哈哈哈! 引入模块为了 ...

  4. vue+node+mongoDB火车票H5(七)-- nodejs 爬12306查票接口

    菜鸟一枚,业余一直想做个火车票查票的H5,前端页面什么的已经写好了,node+mongoDB 也写了一个车站的接口,但 接下来的爬12306获取车次信息数据一直卡住,网上的爬12306的大部分是pyt ...

  5. 如何在客户端发送ajax请求,ajax - 从服务器(nodejs)发送数据到客户端(ajax请求)

    如何使用nodejs将数据从服务器发送到客户端? 所以基本上我通过点击一个按钮来调用这个函数 javascriptfunction createStuff(tid) { $.ajax({ type: ...

  6. python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取

    如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...

  7. 【nodejs】数据统计平台碰到的坑

    记录使用nodejs实现数据统计平台碰到的一些坑: String + Array 在调试的时候需要打印一些log进行分析,打印long的源码为: 控制台输出的结果为: 以为是字符串的原因,将searc ...

  8. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  9. 1分钟轻松爬数据(web scraper插件使用教程)

    1分钟轻松爬数据(web scraper插件使用教程) 前提你已安装web scraper(Google,FireBox商店都有). 说明:安装后右键查看元素或检查即可看到web scraper,简介 ...

最新文章

  1. mysql的insert语法_mysql insert 语法
  2. 拥抱敏捷的用例分析方法
  3. Apache Karaf配置远程调试
  4. 实话!程序员大都不喜欢拉帮结派
  5. 使用集合组织相关数据
  6. Code Review 与 结对编程
  7. 学以致用一 安装centos7.2虚拟机
  8. 《Solution-Centric Organization》解决方案导向型组织 节选 IV
  9. mysql的简单实用_MySQL的简单实用 手把手教学
  10. WebApp那些事——(JqueryMobile) 实战(一)
  11. cadsee plus看图纸 7.2.0.1
  12. GIS-坐标系-EPSG(二次整理)
  13. AERONET 儒略日公历相互转换
  14. dis的前缀单词有哪些_dis前缀的英语单词
  15. MDK5.30下载来了,含镜像下载地址,ARM同时带来Cortex-M55调试展示(2020-05-05)
  16. 泥瓦匠之 Java 的成长感悟
  17. 你算过这笔账么?月薪5000在中国和美国的生活各是怎样?
  18. 分布式事务之TCC模型 confirm失败补偿
  19. python如何导出数据库数据库_python导出数据库数据的方法
  20. window 卸载串口cp210x驱动并安装

热门文章

  1. 实现美团、饿了么购物车效果,并本地存储相关数据
  2. Excel图表5——旋风图(对称条形图)
  3. 计算机三级的英语单词,大学英语三级词汇表(新版)资料.doc
  4. seaborn小提琴图
  5. python爬虫接单发源地_python爬虫任务接单渠道
  6. Redis键-值数据库 nosql 数据建模(3)------ 如何存储主从表数据 一对多关系
  7. 【实用软件 01期】B站视频下载器(免安装、即点即用)
  8. Android手机拍照功能的实现
  9. 损失函数--持续更新
  10. giflib加载GIF文件