抓取

一、新建一个文件夹

文件夹不要是中文

二、下载第三方模块

  1. cmd进入文件夹地址,输入:npm init -y进行初始化
  2. 输入npm i crawler mysql-ithm下载爬虫和node-orm模板

三、导入模块

const Crawler = require("crawler");
const db = require('mysql-ithm')

四、利用爬虫模块进行抓取数据

  1. 在王者荣耀官网找到请求,所有英雄的ajax请求

  1. 其中他的响应就是所有英雄的信息(但是不是详细信息)

  1. 通过ename属性获取对应英雄的详细信息

比如:猪八戒的ename为:551

其英雄详细地址:

  1. 通过第三方模块crawler来获取所有的英雄详细信息
  • 先通过请求herolist接口获取所有ename属性,循环访问所有的英雄详细信息页面,并为爬取详细信息页获取链接
  • 在把请求到的数据写到一个数组中,以便做orm插入
var heros = []
var c = new Crawler({maxConnections: 10,// This will be called for each crawled pagecallback: function (error, res, done) {if (error) {console.log(error);} else {var $ = res.$;//1.先通过请求herolist接口获取所有ename属性,循环访问所有的英雄详细信息页面JSON.parse(res.body).forEach(element => {// Queue just one URL, with default callbacklet url = `https://pvp.qq.com/web201605/herodetail/${element.ename}.shtml`//为下个请求建立连接xq.queue(url);});}done();}
});// Queue just one URL, with default callback
c.queue('https://pvp.qq.com/web201605/js/herolist.json');var xq = new Crawler({maxConnections: 10,// This will be called for each crawled pagecallback: function (error, res, done) {if (error) {console.log(error);} else {var $ = res.$;//写入一个数组中heros.push({heroName: $('.cover-name').text(),heroSkill: $('.skill-name>b').first().text(),heroIcon: 'http:' + $('.ico-play').prev().attr('src')})}done();}
});

入库

一、通过第三方orm插件建立连接,并创建表

const db = require('mysql-ithm')
db.connect({host: 'localhost',//数据库地址port: '3306',user: 'root',//用户名,没有可不填password: 'root',//密码,没有可不填database: 'vido'//数据库名称
});
let heroModel = db.model('hero', {heroName: String,heroSkill: String,heroIcon: String,isDelete: String
});

二、用刚才存储数据的数组,写入到数据库中

  • 但是这里有个问题要注意一下:

爬虫爬取数据是异步操作,我们必须要等到所有数据爬取完了,才写入数据库

这里我们通过绑定drain等所有的数据都爬取完了才执行入库操作

//要等待所有的请求全部做完之后,才入库
xq.on('drain', function () {heroModel.insert(heros, (err, result) => {if (err == null) {console.log('添加成功')} else {console.log('添加失败')}})
});

三、数据查看

通过上面一系列的操作我们就可以得到你想要的王者荣耀所有英雄的信息了

源码参考

https://gitee.com/zhao_jia_le/test/tree/master/

利用node爬取王者荣耀英雄信息,并存入数据库相关推荐

  1. 利用Python爬取王者荣耀英雄皮肤!

    image 0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了.本篇就来教大家如何使用Python来爬取这些精美的英雄皮 ...

  2. python爬取王者皮肤别人可以看见效果吗_利用python爬取王者荣耀英雄皮肤图片

    前两天看到同学用python爬下来LOL的皮肤图片,感觉挺有趣的,我也想试试,于是决定来爬一爬王者荣耀的英雄和皮肤图片. 然后,简单的分析一下结构,看看是否有反爬机制. 之后,在上网查阅资料后,发现所 ...

  3. Python爬虫——手把手教你爬取王者荣耀英雄皮肤

    大家好!我是霖hero 大家知道目前最火的手游是哪个嘛,没错,就是王者荣耀,这款手游想必大家都听过或者玩过吧,里面有106个英雄,几百个英雄皮肤,今天我来手把手教你们把几百个皮肤都爬取下来. 目录 P ...

  4. Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目

    Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...

  5. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)

    教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...

  6. Python爬取 | 王者荣耀英雄皮肤海报

    这里只展示代码,具体介绍请点击下方链接. Python爬取 | 王者荣耀英雄皮肤海报 import requests import re import os import time import wi ...

  7. Java爬虫 --- 爬取王者荣耀英雄图片

    Java爬虫 - 爬取王者荣耀英雄图片 import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Docu ...

  8. Python爬虫爬取王者荣耀英雄人物高清图片

    Python爬虫爬取王者荣耀英雄人物高清图片 实现效果: 网页分析 从第一个网页中,获取每个英雄头像点击后进入的新网页地址,即a标签的 href 属性值: 划线部分的网址是需要拼接的 在每个英雄的具体 ...

  9. Python批量爬取王者荣耀英雄高清壁纸

    Python批量爬取王者荣耀英雄高清壁纸 文章目录 Python批量爬取王者荣耀英雄高清壁纸 前言 爬虫步骤 python代码实现 总结 前言 很多喜欢玩王者的朋友很希望把王者荣耀的英雄图片拿来做壁纸 ...

最新文章

  1. Android Studio中新建和引用assets文件
  2. 你可以不知道的JS二
  3. Bean的解析与注册
  4. 图标和文字跟着div比例放大缩小_Word文档页面显示比例与单页多页,文本的输入、修改、删除与插入...
  5. postgre sql 括字段_【技术干货】30个最适合初学者的SQL查询
  6. Seismic migration - Wikipedia
  7. getline()函数的使用
  8. 线性回归公式推导与代码实现
  9. 计算机专硕超过270分人数,从18调剂看19备考策略(附76所院校19招生简章)
  10. 计算机科学与工程国际研讨会,2018年北京计算机科学与技术国际研讨会
  11. webstrom 汉化方法
  12. 软件环境整理(pro、sit、test、pre、dev)
  13. BZOJ1857: [Scoi2010]传送带(三分套三分)
  14. ffmpeg实现视频实时动态时间水印
  15. 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系!
  16. StringUtil工具类详解
  17. 恒定积自动做市--兑换比例,滑点,平均成本,资金进出对价格影响
  18. VR全景拍摄如何正确的拍摄?全景摄影大赛等你来
  19. java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook] with root cause
  20. Race Condition漏洞

热门文章

  1. 慈溪视频软件测试,慈溪论坛
  2. PCL中仿射变换Affine3f(四维)矩阵与Matrix4f(四维)矩阵之间的转换
  3. android 第三方SDK接入一般流程
  4. 74LSxx versus. 74HCxx
  5. “两两”求和问题技巧
  6. EasyFlash 里的 EF_WRITE_GRAN
  7. 无人机航测技术及应用概述
  8. python按某列拆分excel表格_Python实现将excel表格按某列拆分为多个sheet(模板格式不变)...
  9. 虚拟服务器IP地址创建,虚拟服务器的ip地址
  10. 2020年6月TIOBE编程语言排名公布