标题王者农药英雄技能爬取

import requests,json
from lxml import etree
import pandas as pdherolist_json = requests.get('https://pvp.qq.com/web201605/js/herolist.json').text
herolist = json.loads(herolist_json)
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
print(herolist)
heroes_info = []def herotype_text(hero):if hero['hero_type'] == 1:herotype = '战士'elif hero['hero_type'] == 2:herotype = '法师'elif hero['hero_type'] == 3:herotype = '坦克'elif hero['hero_type'] == 4:herotype = '刺客'elif hero['hero_type'] == 5:herotype = '射手'elif hero['hero_type'] == 6:herotype = '辅助'return herotypedef fromturltotype(p):pt1 = int(partners[0][0:3])pt2 = int(partners[1][0:3])for hero in herolist:if hero['ename'] == pt1:pt1_num = hero['hero_type']pt1_type = herotype_text(hero)if hero['ename'] == pt2:pt2_num = hero['hero_type']pt2_type = herotype_text(hero)return pt1_type,pt2_typefor hero in herolist:herolink = "https://pvp.qq.com/web201605/herodetail/"+str(hero['ename'])+".shtml"page =  requests.get(herolink,headers=headers)page_tree = etree.HTML(page.content)name = page_tree.xpath("//h2[@class='cover-name']")[0].textlife = page_tree.xpath('//ul[@class="cover-list"]/li[1]/span/i/@style')[0][6:-1]#不可以直接获取绝对路径xpath,会报错hurt = page_tree.xpath('//ul[@class="cover-list"]/li[2]/span/i/@style')[0][6:-1]skill = page_tree.xpath('//ul[@class="cover-list"]/li[3]/span/i/@style')[0][6:-1]    difficulty = page_tree.xpath('//ul[@class="cover-list"]/li[4]/span/i/@style')[0][6:-1]herotype = herotype_text(hero)partners = page_tree.xpath('//div[@class="hero-info-box"]/div[1]/div[1]/div[2]//a/@href') pt1,pt2 = fromturltotype(partners)pt = [pt1,pt2,herotype]hero_info = [name,herotype,pt,life,hurt,skill,difficulty]heroes_info.append(hero_info)
print(heroes_info)
heroes_df = pd.DataFrame(heroes_info)
heroes_df.columns = ['英雄名','类型','搭档英雄类型','生存能力','攻击伤害','技能效果','上手难度']
heroes_df.sort_values(by='生存能力',ascending=False)  #这个方法有点问题,因为目前数据都不是数值数据类型,所以排序的时候会出现20反而比100排得靠前的情况
heroes_df.dtypes      #  查看当前数据类型
heroes_df[['生存能力','攻击伤害','技能效果','上手难度']] = heroes_df[['生存能力','攻击伤害','技能效果','上手难度']].apply(pd.to_numeric)#进行数据类型转换
heroes_df.dtypes     # 再看一次数据类型 ,已经变成浮点型了heroes_df.sort_values(by='生存能力',ascending=False)   #  重新排序,返回的是正确排序
# 值计数
heroes_df['搭档英雄类型'].astype('str').value_counts()# 画图
import pygal
line_chart = pygal.Bar()
line_chart.title = '王者荣耀英雄'
line_chart.x_labels = heroes_df['英雄名']
line_chart.add('生存能力', list(heroes_df['生存能力']))
line_chart.add('攻击伤害', list(heroes_df['攻击伤害']))
line_chart.add('技能效果', list(heroes_df['技能效果']))
line_chart.add('上手难度', list(heroes_df['上手难度']))
line_chart.render_to_file('hero.svg')###############heroes_df.to_csv('王者荣耀英雄数据.csv',encoding ='gbk',header = True, index = None)

王者农药人物信息爬取相关推荐

  1. python爬取王者皮肤_Python爬取王者荣耀英雄皮肤高清图片

    前言 临下班前,看到群里有人在讨论用王者农药的一些皮肤作为电脑的壁纸,什么高清的,什么像素稍低的,网上查了一手,也有,但像素都不一样,所以,我就想着,自己去官网直接爬他的高清皮肤就好了,然后就有了这边 ...

  2. 个人-王者荣耀皮肤爬取

    #王者荣耀皮肤抓取 #URL:https://pvp.qq.com/web201605/herolist.shtml #需求:获取所有英雄的所有皮肤并下载到本地import requests, jso ...

  3. python爬取王者皮肤_Python爬取王者荣耀所有英雄以及高清大图

    爬虫的原理: 模拟浏览器的行为,通过网络请求将目标网页抓取到本地. 使用一定的匹配规则,将目标网页中需要的数据提取出来,把不需要的过滤掉. 根据需求,把提取出来的数据存储到磁盘中(json.csv.e ...

  4. Python:王者荣耀壁纸爬取

    分析流程 目标网站 http://shp.qpic.cn/ishow/2735010212/1577940093_84828260_16596_sProdImgNo_2.jpg/0 1024768壁纸 ...

  5. Python爬取王者荣耀全英雄全皮肤图片

    Python爬取王者荣耀全英雄全皮肤图片 前言 思路 分析 编码 案例源码 附图 总结 前言 以前写过类似的博客,利用Java爬取王者荣耀全英雄全皮肤图片,当时是利用 jsoup包来对目标网页进行解析 ...

  6. 爬虫实战(二)—利用requests、selenium爬取王者官网、王者营地APP数据及pymongo详解

    概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider ,包括了项目的所有代码. 本文 ...

  7. 爬虫爬取王者荣耀英雄

    爬虫爬取王者荣耀英雄 爬取英雄所在标签 得到英雄详情页与图片地址 爬取英雄所在标签 import requests import bs4 from bs4 import BeautifulSoup # ...

  8. Python爬虫新手入门教学(十八):爬取yy全站小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  9. Python爬虫新手入门教学(十七):爬取yy全站小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

最新文章

  1. 纪中集训 Day 3
  2. math.trunc_带有Python示例的math.trunc()方法
  3. python自定义排序规则_python自定义排序
  4. JDBC——连接数据库
  5. 【SAS Notes】If then statements
  6. IntelliJ IDEA License Activation系列验证爆错: This license BIG3CLIK6F has been cancelled d 解决
  7. 计算机端口联机,网络端口之二端口传输机制
  8. 依赖反转原则(DIP)
  9. html根据域名跳转不同页面,根据邮箱的域名跳转到相应的登录页面的代码
  10. Windows Terminal 使用 pem 文件连接服务器
  11. 360随身wifi3代linux驱动下载,360随身wifi3驱动
  12. 揭秘交通大脑——BATJ技术争夺战,滴滴与高德的AI新版图
  13. CSS mask遮罩
  14. Java基础_面向对象,Lambda 表达式
  15. 关于Java中的WeakReference类的笔记(弱引用)
  16. 感受生命的伟大,努力绽放生命!
  17. ABB助力国网冀北电力打造虚拟电厂
  18. 已解决:PhotoShop导出发生未知错误!!!
  19. Eclipse的PHP插件PHPEclipse
  20. 分享20个高质量的免费CSS模板

热门文章

  1. python123判断ip地址合法性_判断IP地址的合法性
  2. 领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力
  3. 使用JSP从服务器下载文件的示例
  4. Kmeans、DBSCAN、层次聚类等三种聚类算法笔记
  5. 在JitPack上发布Android库
  6. 论程序员成长中不可避免的选择,薪资与积累
  7. git stash 部分文件
  8. 10分钟部署一个别人可以访问的在线网站
  9. OTG线与普通USB线的区别
  10. SQL server 和 mysql 自动排序生成序列号