摘要:Python 数据采集、分析实战。


昨天借最近持续火爆的的《复联4》说了说漫威电影宇宙票房话题,今天票房就上升到了全球第二,超越保持 20 多年记录的《泰坦尼克号》,有生之年能见到也是难得了。

另外,文末卖了个关子:那么多英雄到底谁最强?今天就来用 Python 对比分析一下各位英雄的综合实力,结果绝对超出你预料。

先说说下漫威电影和漫威漫画的关系。我们看的电影叫「漫改电影」,意思就是从漫画中改编过来搬上荧幕的。这些电影出现不过十年,而漫画五十年前就出现了,大多数数角色由斯坦·李创造,所以你可以看到每部漫威电影他都有客串。

电影中为了呈现更好的视觉效果以刺激观众感官,会刻意加强或者弱化某些英雄的能力,尤其是精彩的打斗场景,让我们以为这就是他们的真实实力。

比如:

  • 美队跟谁都能五五分

  • 最强之人是灭霸

  • 正面对决猩红女巫能手撕灭霸

  • 惊奇队长貌似是唯一一个能单挑不怵灭霸的

而在漫画中的实际情况并不完全是这样。漫画里对每个角色都设定了能力值,能力值包括六个方面,分别是:

  • Intelligence / 智力

  • Power / 能量

  • Strength /  力量

  • Speed / 速度

  • Durability / 耐力

  • Combat / 格斗技

比如钢铁侠的能力值是这样的:


可以看到他的智力和能量值是满分,很贴合电影中 Tony Stark 演的钢铁侠形象。而速度和格斗技巧不过刚及格,可电影中给我们看到的钢铁侠上天入地速度杠杠的,打斗也很强。唯一的解释就是,电影作了美化。

在权威漫画人物网站:superherodb上,给每位角色都标出了能力值。孰强孰弱一对比就一目了然。


不只是上面这些热门角色,该网站拥有包括漫威 、DC 在内的上百家漫画公司的数千位漫画角色详细信息,可以说是非常强大。


当然,一个个去对比很麻烦而且很难发现深层次关系,这时候就需要 Python 出场了。

首先需要获取这些数据,怎么获取呢?当然是爬虫。鉴于以前爬过类似的网站,这里就不爬了感兴趣可以自行尝试。

还有一种更为取巧的方法就是找现成的 API 接口然后调用即可。网上找了一圈,最终找到了 superheroapi 这个网站。

该网站上提供了 700 多位角色的详细信息,数量虽不多但也够用。


API 返回结果是 JSON 格式,包括能力值、身高体重等信息,例如:钢铁侠的信息如下:

 1{ 2  "response": "success", 3  "results-for": "Iron Man",  4  "results": [ 5    { 6      "id": "346", 7      "name": "Iron Man", 8      "powerstats": {  # 能力值 9        "intelligence": "100",10        "strength": "85",11        "speed": "58",12        "durability": "85",13        "power": "100",14        "combat": "64"15      },16...17}

数据采集

下面我们用 Python 先获取网站全部 700 多位角色信息然后保存到本地数据库。

代码见文末,几分钟就可以下载好结果如下:


简单的清洗处理后就可以着手分析。

先看漫威复联系列。说起复联最重要的人物自然是六位初代英雄。


初代六人组实力对比

凭电影中的印象对这六人的实力排序的话,你会怎么排?

按图上从左到右的顺序来看看六人的实际实力。

雷神

通过雷达图可以看到雷神很全面,多项数据都是满分,几乎没有弱点,然而智力这块儿只有中等水平。如果你看过雷神系列就会知道他的智商的确很捉急。

mark

黑寡妇

寡姐身为六人组里唯一的女性,不会飞也没有什么道具,最拿手的就是肉搏,《钢铁侠2》首次出场表现就奠定了她的风格。

mark

鹰眼

箭筒里永远射不完箭的鹰眼在《雷神1》中首次亮相,实力差不多是最弱的,感觉《复联1》中演反派更厉害。

mark

绿巨人

终于出现个和雷神实力匹配的对手,三项能力满分,格斗技和速度中等,浩克的确格斗能力没那么强,在《复联3》开头分分钟被灭霸给收拾了。智商比雷神高,毕竟是拥有 7 个博士头衔的人。

mark

美国队长

整个系列一共说了三次「I can do this all day.」 的美队给人最大的错觉就是:和谁都能五五开,然而毕竟肉身,实际没有那么强。

mark

钢铁侠

最后是最帅气最聪明的托尼了,感觉没有电影中想的那么强大,主要他演得好印象分高。

mark

来个汇总看得更清楚,初代六人组孰强孰弱这下有答案了吧?


十位重要英雄实力

除了六位初代英雄,陆陆续续还出现了很多其他英雄,挑选十位露脸最多的来看看。

洛基

有「锤」必有「基」,虽然电影中洛基饰演的是反派,但其实不坏,跟雷神相爱相杀带来不少笑料,所以重要人物中必须「Loki」的名字。


惊奇队长

很多人都说惊奇队长应该是《复联》中最牛逼的人,在《复联4》打了个酱油。战斗力的确很惊人,但 DC 中还有一个比她还厉害的男性「惊奇队长」,一会儿说。


绯红女巫

不得不说绯红女巫是又美又能打,差点把灭霸撕了。我不会告诉你他们俩早在另外一部电影《老男孩》里也上演了一出别样「大战」。


幻视

《复联2》中诞生就拥有心灵宝石的幻视着实牛逼,把奥创打得满地找牙,但到了后面怎么就沦落到被保护的境地了。


奇异博士

卷福饰演的奇异博士还是很牛逼,有时间宝石、有斗篷还有酷炫的阿戈摩托之眼。《复联4》最后对着托尼竖起了一根手指,大概是说:「福尔摩斯,只能有一个。」


蚁人 & 蜘蛛侠

蚁人和蜘蛛侠差不多,飞来飞去。蚁人是复联少数几个绝顶聪明的人,可以说《复联4》能够逆转,蚁人功劳很大。蜘蛛侠实力均衡,早在《钢铁侠》系列中就出场了,虽然身为托尼的小跟班,但漫画中蜘蛛侠是漫威最大的 IP。



黑豹 & 冬兵

要问谁比钢铁侠还有钱,那必然是「振金王国」瓦坎达的国王黑豹了。在去年的独立电影中大放异彩,复联中到没有太多施展拳脚的机会。

要论复联有哪几对相爱相杀组合,除了雷神和洛基,就是美队和冬兵了,《美队1》中还是挺感人的。



星爵

最后隆重出场的是星爵,也是我本人最喜欢的复联英雄。《银河护卫队1》打养父,《银河护卫队2》打生父,《复联34》打岳父,他才是最牛逼的「灭爸」。现实中的岳父是位了不得的人物:施瓦辛格。

虽然综合实力不怎么样但银河系尬舞天团的能力不是吹的。


来听听这首星爵伴随 Walkman 尬舞的歌。

以上就介绍了十六位漫威英雄。

去掉四位稍弱人物,来对比下六人组综合实力。


惊队除了智商稍微弱点,其他基本无敌,这点和雷神很像,二者综合实力也差不多,可以说是新老成员中最厉害的了。

灭霸

正派说完轮到大 BOSS 灭霸出场了。


看到灭霸就会想起电影中被他那宝石手套支配的恐惧,五一终于理解灭霸的初心了。而灭霸真实的实力如何呢,来看看他和雷神、惊奇队长三人对比。


可以看到灭霸的优缺点非常明显,优点是和托尼一样绝顶聪明,缺点就是速度慢,难怪电影中要靠宝石跑到地球来。综合来看,三者单挑的话基本五五开,灭霸戴上手套的话就另算了。

漫威和 DC 英雄比

作为两大漫画巨头,漫威和 DC 一直在明争暗斗,早些年 DC 要比漫威混得好,漫威这十几年才起来。两大公司手上都握有大量漫画角色,对比一下这两家当家英雄应该会很有意思。

DC 比较熟知的就是超人了,这里来拿雷神和超人对比下看看。可以看到超人近乎完美,比雷神聪明速度也更快,除了格斗稍弱雷神,总体来说是碾压雷神的。


DC 其他英雄又如何呢,把 700 多位英雄六项能力值汇总得到综合实力,然后取前十名来看看。

  • 标红色的是 DC 家的

  • 浅灰色是其他公司的

  • 深黑色的是漫威家的


完全没有想到,综合实力最强的 10 位竟然有 8 位都来自 DC,漫威完全被碾压,唯一登榜的是超越者(Beyonder),雷神都上不了榜。

然而问题来了,拥有如此众多实力超强的英雄,DC 近些年为什么风头全被漫威压住了?

榜单上排名第一得到了 600 满分无敌了,来揭晓下 TA 是谁。

就是这位 Man of Miracles,别名 Mother of Existence 宇宙的创造者,上帝是他儿子。


其他有意思的

最高的人

很多漫威英雄五大三粗,就来扒一扒哪些角色最高。排第一的是 「Ymir」超过 300 米,他是冰霜巨人的祖先,即洛基的祖先。范迪塞尔配音的  Groot 在银护中非常高,也仅能排第 10。


最壮的人

复联中浩克、灭霸都很壮,可在诸多大神面前就是小巫见大巫了。排第一的就是熟悉的哥斯拉,重达九万吨,不得不说日本人脑洞真大。第二的金刚也有九千吨。


以上就是对宇宙英雄的一些简单分析,感兴趣的话可以自己试试。数据采集部分的代码如下:

  1# -*- coding: utf-8 -*-  2"""  3Created on Mon May 5 12:57:10 2019  4@author: 高级农民工  5"""  6import requests  7import pandas as pd  8import re  9from requests.exceptions import RequestException 10import time 11from multiprocessing import Process, Pool 12import pymongo 13import os 14 15# https://superheroapi.com/,facebook 登陆即可自动获取token 16token = '输入你的token' # 如果获取不到,可以微信找我提供给你 17 18def getapi(i): 19    url = 'https://superheroapi.com/api/%s/%s' % (token, i) 20    data = requests.get(url).json() 21    return data 22 23def parseapi(item): 24    lst = { 25        'id': item['id'], 26        'name': item['name'], 27        # 提取人物战斗力值 28        'intelligence': item['powerstats']['intelligence'], 29        'strength': item['powerstats']['strength'], 30        'speed': item['powerstats']['speed'], 31        'durability': item['powerstats']['durability'], 32        'power': item['powerstats']['power'], 33        'combat': item['powerstats']['combat'], 34        # 提取人物特征 35        'gender': item['appearance']['gender'], 36        'race': item['appearance']['race'], 37        'height': item['appearance']['height'][1],  # 取cm 38        'weight': item['appearance']['weight'][1],  # 取kg 39        # 提取人物头像url 40        'image': item['image']['url'], 41        'publisher': item['biography']['publisher'],  # 出版方 Marvel/DC 42        'alignment': item['biography']['alignment']  # 正派/反派 43    } 44 45    # 写入csv 46    write_csv(lst) 47 48    # 或者写入MongoDB 49    # write_mongodb(lst) 50 51    # # 下载图片拼图片墙 52    image = item['image']['url'] 53    save(image) 54 55def write_mongodb(lst): 56    client = pymongo.MongoClient('localhost', 27017) 57    db = client.marvel 58    mongo_collection = db.marvel_stats 59 60    if mongo_collection.update_one(lst, {'$set': lst}, upsert=True): 61        pass 62    else: 63        print('存储失败') 64    print('id:%s 存储完成' % lst['id']) 65 66def write_csv(lst): 67    content = pd.DataFrame([lst]) 68    content.to_csv('./marvel.csv', mode='a', encoding='utf_8_sig', 69                   index=False, header=None) 70 71def save(image): 72    # 获取头像编号 73    num = re.search('https:.*\/(.*?).jpg', image).group(1) 74    dir = os.getcwd() + '\\marvel\\' 75    if not os.path.exists(dir): 76        os.mkdir(dir) 77    file_path = '{0}\\{1}.{2}'.format(dir, num, 'jpg') 78    try: 79        response = requests.get(image) 80        if response.status_code == 200: 81            with open(file_path, 'wb') as f: 82                f.write(response.content) 83                print('编号:%s下载完成' % num) 84    except exceptions: 85        pass 86 87def main(i): 88    data = getapi(i) 89    parseapi(data) 90 91if __name__ == '__main__': 92    start = time.time() 93    pool = Pool() 94    for i in range(1, 732): 95        # 多进程 96        pool.apply_async(main, args=[i, ]) 97    pool.close() 98    pool.join() 99    end = time.time()100    print('总共用时{}s'.format((end - start)))

/今日留言主题/

你喜欢漫威中的谁?

(留言格式:Dayxx:blahblah)

漫威 DC 英雄综合实力排位,这人秒杀灭霸相关推荐

  1. 《BI那点儿事》运用标准计分和离差——分析三国超一流统帅综合实力排名 绝对客观,数据说话...

    数据分析基础概念: 标准计分: 1.无论作为变量的满分为几分,其标准计分的平均数势必为0,而其标准差势必为1. 2.无论作为变量的单位是什么,其标准计分的平均数势必为0,而其标准差势必为1. 公式为: ...

  2. 中国大城市政治地位综合实力排名

    中国大城市政治地位综合实力排名! 中国大城市政治地位综合实力排名! 政治地位: 政治地位: 1(直辖市 4 个):上海.北京.天津.重庆 2(副省级城市 15 个):广州.深圳.武汉.南京.沈阳.成都 ...

  3. 工商银行和中国银行哪个综合实力更强?

    毫无疑问,如果从综合实力来看的话,工商银行肯定要比中国银行强很多,不过中国银行在国际业务上相对比工商银行要强一些. 工商银行和中国银行都是四大国有控股四大银行之一,都是我国银行业的中坚力量,而且两者的 ...

  4. 中国高校人工智能专业综合排名:四大维度揭示72所高校AI专业综合实力

    2017年7月,国务院发布了<新一代发展规划>,明确提出了"设立 "和"在原有基础上拓宽人工智能专业教育内容"等要求.2018年4月,教育部印发了& ...

  5. AI高校排行榜:2018年度全国普通高校人工智能方向本科教育教学综合实力排行榜...

    人工智能在全球经济竞争和科技发展中占有举足轻重的地位.为了全面了解我国高校人工智能教育教学现状,加快全国高校人工智能人才培养进度, 2018年7月~8月,全国高校人工智能与大数据创新联盟对全国高等院校 ...

  6. 中北和山大哪个计算机专业好点,山大和中北竞选双一流,山大综合实力更强,为何中北却获更多支持...

    山大和中北竞选双一流,山大综合实力更强,为何中北却获更多支持 双一流大学是在985.211高校后,对国内好大学的又一新定义,双一流大学刚出现,就受到国内大学的追捧,大学都是抢着进入,可进军双一流大学并 ...

  7. 【武书连】2021 中国一流大学名单(30 所)和中国大学综合实力 700 强出炉!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源 | 武书连 编辑 | 双一流高校.AI有道 本文为参考排名,不 ...

  8. 2020中国一流大学名单(27所)和中国大学综合实力300强出炉!

    来源:武书连 本文转载自:双一流高校 由中国管理科学研究院<中国大学评价>课题组组长武书连主持的<2020中国大学评价>课题,于2020年5月结题,内容由中国统计出版社出版发行 ...

  9. 东南大学和山东大学计算机学院,东南大学和山东大学都是985、211哪所综合实力更强些呢?...

    东南大学和山东大学都是985.211.双一流全国重点大学.那么这两所大学,哪所综合实力更强些呢? 在2018年985大学生源质量排行榜上,东南大学位居18,山东大学位居32名.看来,东南大学的生源质量 ...

  10. 高性能计算战火再度升级,科技综合实力竞争少不了它

    高性能计算多年来一直是科技综合实力竞争的制高点,也在一定程度上反映了各大公司在系统研发方面的实力.在万物互联的大趋势下,计算产业正在历经革新.当下有很多大型的任务,无法通过实际实验进行,只能依托高性能 ...

最新文章

  1. rfc6455 WebSockets
  2. C语言通讯录管理系统
  3. laravel 任务队列_Laravel 队列的简单使用例子
  4. 《上海市产业绿贷支持绿色新基建(数据中心)发展指导意见》印发了
  5. 用UI讲故事,表达情感和创造个性
  6. 【机器学习】粗糙集属性约简算法与mRMR算法的本质区别
  7. Acwing 135 最大子序和
  8. Android开发:1-3、Android常用布局
  9. C#实现DataTable按天分组并计数
  10. 电脑rar文件打开方式_新手使用苹果电脑Mac,知道这些让你用起来更舒心。
  11. 系统初始化SHELL脚本
  12. 如何使用linux command line 利用Entrez Direct下载NCBI数据
  13. 刺激战场android免费辅助网盘,刺激战场xs辅助
  14. 2023年创业必火的十个行业是哪些?创业必赚钱!
  15. 成为软件工程师之前,你必须了解这些
  16. 计算机怎样改成游戏机,手把手教你安装batocera系统,把旧电脑变成万能影音游戏主机...
  17. 配置org.springframework.scheduling.quartz.CronTriggerBean (转载)
  18. 浅谈2023年Android开发技术趋势,什么值得学?
  19. 【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之SparkSQL篇
  20. 本周大新闻|传微软解散工业元宇宙团队,MIT研发垂直堆叠全彩Micro LED

热门文章

  1. html5中ul什么意思,css代码中的ul和li是什么意思
  2. 转【测试基础】测试计划如何编写
  3. centos7安装有道词典
  4. 没听过33大原则,赶紧偷偷学习一下:JS开发者不得不知的33大原则!
  5. bzoj 1260涂色 题解
  6. 实数系的基本定理_11、实数的连续性(1)
  7. 抖音养号上热门技巧(超详细)
  8. 原生JS实现的跳一跳小游戏完整实例
  9. 金融数据分析期末报告:基于时间序列的回归模型及其应用
  10. Multisim仿真:验证性实验-单管共射放大电路