今天给大家爬取一个王者荣耀的详情,让大家更好更快了解,说白了,就是想练练手

点个赞留个关注吧!!

今天爬取的内容相对简单,我也不知道难不难,可能对于新手来说会一点难,难就难着吧,不下功夫当然过不了,熬三个夜晚就会了

今天爬取的主要内容分别是:英雄名称、详情链接、英雄属性(生存、伤害、技能、难度)、英雄皮肤(非图片)、铭文搭配推荐、召唤师技能推荐(针对不同英雄给予不同的推荐)、出装搭配推荐(两种方案)、最佳的搭档、压制英雄、被压制英雄

爬取的不包含图片/文件,只有可视文字字幕,,用了一个晚上做出来的,闲的睡不着觉才想到做这个爬虫的,希望能帮助到大家,不妨先点个关注,给个赞也可以

因为这个网站的一些问题,爬取不到前几位的英雄,我试了很多次都无济于事,也懒得搞了就暂时先不管这个了,如果有哪一位博主知道怎么回事,请在评论区或私信说一下,谢谢

废话不多说,由于代码较多,原本我也想分三个文件写入,但是我太懒了,直接写到一个py文件内了,直接上代码:

# -*- coding: utf-8 -*-
import requests
import re
from bs4 import BeautifulSoupURL = requests.get('https://pvp.qq.com/web201605/herolist.shtml')
html = URL.content
soup = BeautifulSoup(html,'html.parser',from_encoding="utf-8")  #解析器
div_people_list = soup.find('ul', attrs={'class': 'herolist clearfix'})for a in div_people_list.find_all('li'):#爬取人物详情链接text_1 = a.find('a')URL_2 = ('https://pvp.qq.com/web201605/'+text_1['href'])  #链接#脾气任务名称URL_3 = requests.get(f'{URL_2}')html_2 = URL_3.content   #再次解析soup_2 = BeautifulSoup(html_2,'html.parser',from_encoding="utf-8")  #解析器text_2 = soup_2.find('h2', attrs={'class': 'cover-name'}).get_text()   #名称#print(text_2+'\t\t'+URL_2)#爬取任务伤害比例text_3 = soup_2.find('ul', attrs={'class': 'cover-list'})  # 伤害T = 0for text_4 in text_3.find_all('i', attrs={'class': 'ibar'}):r = text_4['style']T += 1#获取属性伤害if T == 1:print(f'------------------------------>>{text_2}<<------------------------------\n'+text_2 + '\t人物详情链接:' + URL_2)print('生存能力:', end='')print(re.findall('width:(.*)', r), end='')else:if T == 2:print('\t\t攻击伤害:', end='')print(re.findall('width:(.*)', r))else:if T == 3:print('技能效果:', end='')print(re.findall('width:(.*)', r), end='')else:if T == 4:print('\t\t上手难度:', end='')print(re.findall('width:(.*)', r))#皮肤获取text_5 = soup_2.find('ul', attrs={'class': 'pic-pf-list pic-pf-list3'})['data-imgname']  # 读取标签data = text_5.replace("&0", "").replace("|", "]  [").replace("&", "")   #去除杂物new_string = ''.join([i for i in data if not i.isdigit()])     #去除烦人的数字print(f'{text_2}的皮肤:['+new_string+']')     #打印皮肤#铭文推荐text_6 = soup_2.find('ul', attrs={'class': 'sugg-u1'})['data-ming']data_2 = text_6.replace("|", "]  [")  # 替换#铭文ID转换def mwtj(f):if f == 1514:f = '梦魇'return felse:if f == 3531:f = '心眼'return felse:if f == 2520:f = '狩猎'return felse:if f == 1504:f = '异变'return felse:if f == 3514:f = '鹰眼'return felse:if f == 2517:f = '隐匿'return felse:if f == 1510:f = '无双'return felse:if f == 2503:f = '贪婪'return felse:if f == 3515:f = '心眼'return felse:if f == 1512:f = '宿命'return felse:if f == 2515:f = '调和'return felse:if f == 3509:f = '虚空'return felse:if f == 3515:f = '心眼'return felse:if f == 3516:f = '怜悯'return felse:if f == 1501:f = '圣人'return felse:if f == 3511:f = '献祭'return felse:if f == 2512:f = '轮回'return felse:if f == 2506:f = '兽痕'return felse:if f == 1517:f = '凶兆'return felse:if f == 2506:f = '兽痕'return felse:if f == 1519:f = '祸源'return felse:if f == 1503:f = '传承'return felse:if f == 3503:f = '均衡'return felse:if f == 2501:f = '长生'return felse:if f == 1520:f = '红月'return felse:if f == 2504:f = '夺萃'return felse:if f == 1505:f = '纷争'return felse:if f == 3518:f = '回声'return felse:pass#读取铭文IDdata_3 = int(data_2[0:][:4])data_4 = int(data_2[8:][:4])data_5 = int(data_2[16:][:4])#打印铭文print('铭文搭配推荐:['+mwtj(data_3) +']  ['+ mwtj(data_4) +']  ['+ mwtj(data_5)+']')#推荐召唤师技能def Z_C(L):if L == 80115:L = '闪现'return Lelse:if L == 80107:L = '净化'return Lelse:if L == 80102:L = '治疗'return Lelse:if L == 80108:L = '终结'return Lelse:if L == 80121:L = '弱化'return Lelse:if L == 80103:L = '眩晕'return Lelse:if L == 80104:L = '惩击'return Lelse:if L == 80109:L = '疾跑'return Lelse:if L == 80110:L = '狂暴'return Lelse:passskill = soup_2.find('div', attrs={'class': 'sugg-info2 info'})skill_list = skill.find('p', attrs={'id': 'skill3'})['data-skill']skill_2 = skill_list.replace("|", "     ")  # 替换Z_1 = int(skill_2[0:][:8])Z_2 = int(skill_2[7:][:8])print('召唤师技能推荐:['+Z_C(Z_1)+'] 或 ['+Z_C(Z_2)+']')#推荐出装#出装一cz_list_1 = soup_2.find('div', attrs={'class': 'equip-info l'})cz_text = cz_list_1.find('ul', attrs={'class': 'equip-list fl'})['data-item']#出装二cz_list_2 = soup_2.find('div', attrs={'class': 'equip-bd'})cz_text_2 = cz_list_2.find_all('div', attrs={'class': 'equip-info l'})[1]cz_2 = cz_text_2.find('ul', attrs={'class': 'equip-list fl'})['data-item']def cztj(G):if G == 1425:G = '急速战靴'return Gelse:if G == 1126:G = '末世'return Gelse:if G == 1137:G = '暗影战斧'return Gelse:if G == 1138:G = '破军'return Gelse:if G == 1155:G = '破晓'return Gelse:if G == 1127:G = '名刀·司命'return Gelse:if G == 1132:G = '泣血之刃'return Gelse:if G == 1423:G = '冷静之靴'return Gelse:if G == 1233:G = '回响之杖'return Gelse:if G == 1235:G = '痛苦面具'return Gelse:if G == 1232:G = '博学者之怒'return Gelse:if G == 1727:G = '日暮之流'return Gelse:if G == 1238:G = '贤者之书'return Gelse:if G == 1240:G = '噬神之书'return Gelse:if G == 1234:G = '凝冰之息'return Gelse:if G == 1533:G = '贪婪之噬'return Gelse:if G == 1422:G = '抵抗之靴'return Gelse:if G == 1137:G = '暗影战斧'return Gelse:if G == 13310:G = '冰痕之握'return Gelse:if G == 1335:G = '魔女斗篷'return Gelse:if G == 1129:G = '速击之枪'return Gelse:if G == 1728:G = '金色圣剑'return Gelse:if G == 1222:G = '血族之书'return Gelse:if G == 1231:G = '虚无法杖'return Gelse:if G == 1223:G = '光辉之剑'return Gelse:if G == 1236:G = '巫术法杖'return Gelse:if G == 1134:G = '宗师之力'return Gelse:if G == 1131:G = '碎星锤'return Gelse:if G == 1336:G = '极寒风暴'return Gelse:if G == 1334:G = '不死鸟之眼'return Gelse:if G == 1532:G = '巨人之握'return Gelse:if G == 1426:G = '疾步之靴'return Gelse:if G == 1332:G = '霸者重装'return Gelse:if G == 1327:G = '反伤刺甲'return Gelse:if G == 1421:G = '影忍之足'return Gelse:if G == 1333:G = '不详征兆'return Gelse:if G == 1337:G = '贤者的庇护'return Gelse:if G == 1522:G = '巡守利斧'return Gelse:if G == 1133:G = '无尽战刃'return Gelse:if G == 1136:G = '影刃'return Gelse:if G == 1721:G = '极影'return Gelse:if G == 1722:G = '救赎之翼'return Gelse:if G == 1331:G = '红莲斗篷'return Gelse:if G == 1239:G = '辉月'return Gelse:if G == 1523:G = '追击刀锋'return Gelse:if G == 1333:G = '不详征兆'return Gelse:if G == 1424:G = '秘法之靴'return Gelse:if G == 1135:G = '闪电匕首'return Gelse:if G == 1724:G = '近卫荣耀'return Gelse:if G == 1226:G = '圣杯'return Gelse:if G == 1226:G = '圣杯'return Gelse:if G == 1225:G = '进化水晶'return Gelse:if G == 1531:G = '符文大剑'return Gelse:if G == 1227:G = '炽热支配者'return Gelse:if G == 1237:G = '时之预言'return Gelse:if G == 11311:G = '纯净苍穹'return Gelse:if G == 1521:G = '游击弯刀'return Gelse:if G == 1328:G = '血魔之怒'return Gelse:if G == 12211:G = '梦魇之牙'return Gelse:if G == 1723:G = '奔狼纹章'return Gelse:if G == 1338:G = '爆裂之甲'return Gelse:pass#出装一  进行转换data_2 = cz_text.replace("|", "          ")  # 替换C_z_1 = int(data_2[0:][:7])C_z_2 = int(data_2[10:][:12])C_z_3 = int(data_2[22:][:15])C_z_4 = int(data_2[36:][:15])C_z_5 = int(data_2[50:][:16])C_z_6 = int(data_2[65:][:16])# 出装二  进行转换data_list2 = cz_2.replace("|", "          ")  # 替换C_z_2_1 = int(data_list2[0:][:7])C_z_2_2 = int(data_list2[10:][:12])C_z_2_3 = int(data_list2[22:][:15])C_z_2_4 = int(data_list2[36:][:15])C_z_2_5 = int(data_list2[50:][:16])C_z_2_6 = int(data_list2[65:][:16])#打印出装一print('推荐出装一:[' + cztj(C_z_1) + ']  [' + cztj(C_z_2) + ']  [' + cztj(C_z_3) + ']  [' + cztj(C_z_4) + ']  [' + cztj(C_z_5) + ']  [' + cztj(C_z_6) + ']')#打印出装二try:print('推荐出装二:[' + cztj(C_z_2_1) + ']  [' + cztj(C_z_2_2) + ']  [' + cztj(C_z_2_3) + ']  [' + cztj(C_z_2_4) + ']  [' + cztj(C_z_2_5) + ']  [' + cztj(C_z_2_6) + ']')except:print('推荐出装二:[' + cztj(C_z_2_1) + ']  [' + cztj(C_z_2_2) + ']  [' + cztj(C_z_2_3) + ']  [' + cztj(C_z_2_4) + ']  [' + cztj(C_z_2_5) + ']')#搭配英雄推荐dp = soup_2.find('div', attrs={'class': 'hero-info-box'})H = 0for TTT in range(3):dp_list_1 = dp.find_all('div', attrs={'class': 'hero-info l info'})[H].find('a')['href']URL_4 = ('https://pvp.qq.com/web201605/herodetail/' + dp_list_1)  # 链接URL_5 = requests.get(f'{URL_4}')html_3 = URL_5.content  # 再次解析soup_3 = BeautifulSoup(html_3, 'html.parser', from_encoding="utf-8")  # 解析器text_7 = soup_3.find('h2', attrs={'class': 'cover-name'}).get_text()  # 搭档一dp_list_2 = dp.find_all('div', attrs={'class': 'hero-info l info'})[H].find_all('a')[1]['href']URL_5 = ('https://pvp.qq.com/web201605/herodetail/' + dp_list_2)  # 链接URL_5 = requests.get(f'{URL_5}')html_4 = URL_5.content  # 再次解析soup_4 = BeautifulSoup(html_4, 'html.parser', from_encoding="utf-8")  # 解析器text_8 = soup_4.find('h2', attrs={'class': 'cover-name'}).get_text()  # 搭档二H += 1if H == 1:  #最佳搭档print('最佳搭档:['+text_7+']  ['+text_8+']')else:if H == 2:  #压制英雄print('压制英雄:[' + text_7 + ']  [' + text_8 + ']')else:if H == 3:  #被压制英雄print('被压制英雄:[' + text_7 + ']  [' + text_8 + ']')print('\n')H = 0if H == 4:H = 0passelse:if T == 5:T = 0else:pass

可以看到已经爬取出来了

不妨点个赞在走呗!!!

python爬虫详解(五)——爬取王者荣耀英雄详细、攻略搭配、出装配置、铭文搭配、搭档/压制、入手详情相关推荐

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

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

  2. python爬虫-20行代码爬取王者荣耀所有英雄图片,小白也轻轻松松

    1.环境 python3.6 需要用到的库: re.os.requests 2.简介 王者荣耀可以算得上是比较受欢迎的手游之一了,应该有不少的人都入坑过农药,我们今天的目的就是要爬取王者荣耀的高清英雄 ...

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

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

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

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

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

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

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

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

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

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

  8. 爬虫爬取王者荣耀 英雄故事 和技能

    初识爬虫 爬取王者荣耀英雄故事和技能 爬取王者荣耀英雄故事和技能 源码奉上 import requests import re import os from lxml import etree if ...

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

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

最新文章

  1. Socket编程之简单介绍
  2. Linux学习之系统编程篇:PCB( 进程控制块)、进程状态、转换和控制
  3. vue+element+echarts柱状图+列表
  4. HDOJ1536 S-nim
  5. 网络传输之TCP/IP协议族
  6. sql2005(64位企业版)+weblogic9.2+win2008集群
  7. ASC2 E Quantization Problem DP
  8. P3254 圆桌问题
  9. JSON.stringify( new WebSocket(ws://localhost:8080/websocket.do))
  10. ArcGIS Pro 简明教程(4)工具和模型构建器
  11. 关于报表在移动端展现你需要知道哪些?
  12. js判断是否微信浏览器
  13. MJPEG和MP4——视频转换随想
  14. 使用Java实现一个简单的贪吃蛇小游戏
  15. 简要介绍SIGMOD2021接收的区块链相关论文
  16. java基础:面向对象编程23-this课后练习boygirl
  17. 政务云市场开启“狂飙”:一项前三,两项跃升!
  18. 22-3-16Java冒泡排序
  19. 安卓开发实现获取扫码枪扫码二维码、条形码后的内容
  20. java从小白到老白②

热门文章

  1. 基于粒子群算法优化的ELMAN动态递归神经网络预测-附代码
  2. 如何解决前端上线之后用户页面不刷新的问题
  3. 【AD18】原理图生成PCB
  4. 齐岳供应m-(L-Phe)O-C2-TPP、m-(L-Phe)O-C2-TPPZn、m-C2-(L-Phe)-C2(TPP)2、m-C2-(L-Phe)-C2(TPP)2Zn四种新式氨基酸卟啉
  5. 苹果手机悬浮窗怎么打开_怎么通过悬浮窗录音?再也不用担心文本被遮挡
  6. js判断平年闰年_用JS实现判断闰年
  7. Web前端实现一个图片放大镜
  8. mac系统安装yarn,配置淘宝镜像失败的问题
  9. android浏览器获取设备id,html 或者HTML5 加上js能获取手机设备的id号吗
  10. OpenCV-Python 4.5.4 人脸识别应用