Node 插件 爬取王者荣耀官网英雄信息,并生成数据库
文章结构
- 打开官网看接口地址
- 打开官网
- 游戏资料里的英雄资料,并打开后台
- 接下来是英雄技能
- 技能结构路径方便抓取
- jQ的获取元素这里不细说
- 重头戏
- 抓包到到数据库
- 全部代码
- 看数据库
- 总结
打开官网看接口地址
声明 练手node即可,别较王者荣耀的真
打开官网
游戏资料里的英雄资料,并打开后台
这里要说的是你打开后面再刷新一下抓取王者荣耀官网,请求的英雄资料的接口地址
有两个数据文件 https://pvp.qq.com/web201605/js/herolist.jso
下载打开后有下面信息
接下来是英雄技能
这个是头像地址
技能结构路径方便抓取
jQ的获取元素这里不细说
重头戏
使用第三方插件爬取信息
这里要爬取的数据有头像技能英雄名字
由于第一次需要爬取相应的
所以要遍历出每一个英雄的ename,拼接一个详情页路径路径重新发请求.
抓包到到数据库
全部代码
//爬取王者荣耀的信息导入数据库
//1.抓包
//导包
var Crawler = require("crawler");
//创建一个爬虫实例
var c = newCrawler({maxConnections: 10,// This will be called for each crawled pagecallback: function (error, res, done) {if (error) {console.log(error);} else {var $ = res.$;// $ is Cheerio by default//a lean implementation of core jQuery designed specifically for the server// console.log(res)// 所有英雄都在body里,因为是json数据转换json对象// console.log(JSON.parse(res.body))//所有的英雄都要去获取他的头像和技能.//所以要遍历出每一个英雄的ename,拼接一个详情页路径路径重新发请求.JSON.parse(res.body).forEach((v) => {// console.log(v);// console .log( `https://pvp.qq.com/web201605/herodetail/${v. ename} .shtml`);// 详情请求xq.queue(`https://pvp.qq.com/web201605/herodetail/${v.ename}.shtml`);});}done();}});
//发送请求
c.queue('https://pvp.qq.com/web201605/js/herolist.json')// 存放英雄资料
let heros = [];
// 创建一个详情爬虫实例
var xq = newCrawler({maxConnections: 10,// This will be called for each crawled pagecallback: function (error, res, done) {if (error) {console.log(error);} else {var $ = res.$;//获取里面有个cover-name这个class类里有英雄的名字// .skill-name>因为skill-name里有一个b类这个b类里放里一个技能//英雄名字,英雄技能,// console.log($('.cover-name').text(), $('.show-list .skill-name>b').first().text(),// $('.show-list:nth-child(2) .skill-name>b').text(),//二个技能// $('.show-list:nth-child(3) .skill-name>b').text(),// $('.show-list:nth-child(4) .skill-name>b').text(),// );// // 英雄头像// console.log("https:" + $('.ico-play').prev('img').attr('src'));// 把获取的英雄资料放入heros.push({Kingname: $('.cover-name').text(),Kingicon: "https:" + $('.ico-play').prev('img').attr('src'),Kingskill1: $('.show-list .skill-name>b').first().text(),Kingskill2: $('.show-list:nth-child(2) .skill-name>b').text(),Kingskill3: $('.show-list:nth-child(3) .skill-name>b').text(),Kingskill4: $('.show-list:nth-child(4) .skill-name>b').text(),// isDelete: false})}done();}});
// 因为是一个异步操作
// 要等待所有的请求全部做完
xq.on('drain', function () {heroModel.insert(heros, (err, results) => {console.log(err);console.log(results);if (!err) console.log("增加成功");});// db.end();//关闭sql链接,可以不写防止有些数据入库
})// 入库const sql = require('mysql-ithm');//2.连接数据库
//如果数据库存在则连接,不存在则会自动创建数据库
sql.connect({host: '127.0.0.1',//数据库地址port: ' 3306 ',user: 'root',//用户名,没有可不填password: 'root',//密码, 没有可不填database: 'GloryofKings' //数据库名称
});
//3.创建Model(表格模型:负责增删改查)
//如果table表格存在则连接,不存在则自动创建
let heroModel = sql.model('herolist', {Kingname: String,Kingicon: String,Kingskill1: String,Kingskill2: String,Kingskill3: String,Kingskill4: String,// isDelete: String});
看数据库
总结
这里也形成了王者英雄的英雄管理和删除(等操作),在我的github里地址https://github.com/Alicessa/Nodev2
注意一定看项目路径地址
Node 插件 爬取王者荣耀官网英雄信息,并生成数据库相关推荐
- 爬取王者荣耀官网英雄皮肤高清壁纸(简易方法)
代码加详细注释. import requests #import os url = "https://pvp.qq.com/web201605/js/herolist.json" ...
- python爬虫爬取王者荣耀官网全部英雄头像(源码分享)
这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests import json from bs4 i ...
- 简单20行代码爬取王者荣耀官网1080p壁纸
简单20行代码爬取王者荣耀官网1080p壁纸 # -*- coding: utf-8 -*- # @Time : 2020/12/13 18:08 # @Author : ningfangcong i ...
- python爬虫爬取王者荣耀官网全部装备图片(源码分享)
这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests from bs4 import Beauti ...
- node.js(六)之crawler爬虫模块爬取王者荣耀官网所有英雄资源信息
node.js爬虫模块爬取王者荣耀所有英雄信息 一.准备工作 https://pvp.qq.com/web201605/herolist.shtml进入王者荣耀所有英雄页面: 你会看到所有的英雄,打开 ...
- Python爬取王者荣耀官网图片
脚本下载图片预览 两个月之前写的脚本,现在依然可用. #encoding=utf-8 #python3.6 import re,requests,json,os,time def down(url): ...
- 爬取中国所有银行官网网址信息
爬取中国所有银行官网网址信息,并保存在文档中. from urllib import request from urllib.request import urlopen import re url ...
- 教你用PHP爬取王者荣耀英雄皮肤高清壁纸(附源码)
午饭后看到一篇文章关于"用Python爬取王者荣耀官网的英雄皮肤图片",于是顺手用PHP也写了一个,在这里给大家分享一下,贴出源码: //下载王者荣耀皮肤图片 public fun ...
- 一键爬取王者荣耀全皮肤高清图片【方法二】
爬取王者荣耀官网皮肤[爬虫] 上次我们讲了爬虫的定义以及爬取王者荣耀皮肤的思路. 今天我们换一种方式来爬取同样的内容.大体上思路和方法一相同. 方法一传送门:方法一 方法二 # 网址:https:// ...
最新文章
- 浅谈使用SQLBulkCopy批量数据入库
- mfc 判断文件夹复制完成_Python办公自动化|自动整理文件,一键完成!
- 2016matlab安装
- java反编译工具_Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)...
- (转)PowerDesigner教程系列(二)概念数据模型
- Spring-jdbc-ConnectionHolder
- php怎么清空cookies,php cookie如何清除
- 会场安排问题和NYOJ966
- 退火算法(Annealing)简介与详解
- 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
- python爬虫做毕业设计_毕业设计之 --- 爬虫
- 效果惊人:上古卷轴III等经典游戏也能使用超分辨率GAN重制了
- 基因编辑婴儿的意味着什么
- 爬虫-1-基础和urllib
- python从入门到入土表情包-Python自动生成表情包,python在手,从此斗图无敌手
- RabbitMQ交换机类型
- 移动宽带虚拟网服务器设置,移动宽带路由器怎么设置?
- 线性代数学习笔记6-2:行列式的理解、行列式的性质
- docker跨主机集群之flannel
- 2022北京最新建筑八大员(质量员)机考真题题库及答案解析