ruby《王者荣耀》游戏官网皮肤图片爬取

  • 在python中文社区看见了爬王者荣耀官网皮肤图片的,于是心血来潮,想用ruby实现下

require 'unirest'
require 'open-uri'

url = 'http://pvp.qq.com/web201605/js/herolist.json'
response = Unirest.get(url)
hero_list = response.body

#返回ename, cname, skin_name组成的hash数组
hero_list.each do |hero|
  hero.select!{|key, _| key=='ename' || key == 'cname' || key == 'skin_name'}
end

def download_hero_img(url, path, img_name)
  img_file = open(url,:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE){ |f| f.read }
  puts "download #{path}/#{img_name}.jpg"
  open("#{path}/#{img_name}.jpg", 'wb'){ |f| f.write(img_file)}
end

hero_list.each do |hero|
  path = "./#{hero['cname']}"
  Dir.mkdir(path) unless Dir.exists?(path)
  skin_list = hero['skin_name'].split('|')
  skin_list.each_with_index do |skin, index|
url = "https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/#{hero['ename']}/#{hero['ename']}-bigskin-#{index.to_i+1}.jpg"
img_name = skin
download_hero_img(url, path, img_name)
  end
end

python方式参考地址:https://zhuanlan.zhihu.com/p/28617629

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、异同对比选择1、Python和ruby的相同点: * 都强调语法简单,都具有更一般的表达方式。python是缩...
    沃伦盖茨阅读 4,173评论 2 24
  • 作为一个爬虫小白,学完了爬取静态网页的基本思路和相关库,于是便开始着手学习如何爬取动态页面。动态网页的定义,在这里...
    我的昵称是零呀阅读 1,282评论 0 5
  • 孩子小时候刚学走路的时候,经常会摔跤,很多父母都会赶紧的抱起他,然后假装生气地踢踢地面:“就是你,就是你,让宝宝摔...
    幽兰君阅读 413评论 0 1
  • 说散就散,表面~看似简单。 曾经过往,内在~痛苦纠缠。 散就散了,笑容~风轻云淡。 故地重游,凝望~匆匆那年。
    翻书不翻脸阅读 299评论 4 3
  • 我从卫生间出来的时候,想着离上班时间还有半个小时,准备去睡个回笼觉。抬头看见,陈逸希穿着崭新的新装对着镜子整理领带...
    97岁的叶子阅读 257评论 0 1