電影愛好者
当前位置:電影愛好者 > 電影資訊 > 正文

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

前言:最近很多小伙伴問小編:如何獲取資料?

獲取方式:請大家點贊關註並私信小編關鍵詞:“資料”即可獲取你需要的各類學習資料及教程。

正文

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

持續火爆了很久的《復聯4》刷新了漫威電影宇宙票房話題,《復聯4》票房以上升到了全球第二,超越保持 20 多年記錄的《泰坦尼克號》,有生之年能見到也是難得了。

另外,文末賣了個關子:那麼多英雄到底誰最強?今天就來用 Python 對比分析一下各位英雄的綜合實力,結果絕對超出你預料。

先說下漫威電影和漫威漫畫的關係。我們看的電影叫「漫改電影」,意思就是從漫畫中改編過來搬上熒幕的。這些電影出現不過十年,而漫畫五十年前就出現了,大多數數角色由斯坦·李創造,所以你可以看到每部漫威電影他都有客串。

電影中為了呈現更好的視覺效果以刺激觀眾感官,會刻意加強或者弱化某些英雄的能力,尤其是精彩的打鬥場景,讓我們以為這就是他們的真實實力。

比如:

  • 美隊跟誰都能五五分
  • 最強之人是滅霸
  • 正面對決猩紅女巫能手撕滅霸
  • 驚奇隊長貌似是唯一一個能單挑不怵滅霸的

而在漫畫中的實際情況並不完全是這樣。漫畫里對每個角色都設定了能力值,能力值包括六個方面,分別是:

  • Intelligence / 智力
  • Power / 能量
  • Strength / 力量
  • Speed / 速度
  • Durability / 耐力
  • Combat / 格鬥技

比如鋼鐵俠的能力值是這樣的:

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

可以看到他的智力和能量值是滿分,很貼合電影中 Tony Stark 演的鋼鐵俠形象。而速度和格鬥技巧不過剛及格,可電影中給我們看到的鋼鐵俠上天入地速度杠杠的,打鬥也很強。唯一的解釋就是,電影作了美化。

在權威漫畫人物網站:superherodb上,給每位角色都標出了能力值。孰強孰弱一對比就一目瞭然。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

不只是上面這些熱門角色,該網站擁有包括漫威 、DC 在內的上百家漫畫公司的數千位漫畫角色詳細信息,可以說是非常強大。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

當然,一個個去對比很麻煩而且很難發現深層次關係,這時候就需要 Python 出場了。

首先需要獲取這些數據,怎麼獲取呢?當然是爬蟲。鑒於以前爬過類似的網站,這裡就不爬了感興趣可以自行嘗試。

還有一種更為取巧的方法就是找現成的 API 接口然後調用即可。網上找了一圈,最終找到了 superheroapi 這個網站。

該網站上提供了 700 多位角色的詳細信息,數量雖不多但也夠用。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

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 多位角色信息然後保存到本地數據庫。

代碼見文末,幾分鐘就可以下載好結果如下:

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

簡單的清洗處理後就可以著手分析。

先看漫威復聯繫列。說起複聯最重要的人物自然是六位初代英雄。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

初代六人組實力對比

憑電影中的印象對這六人的實力排序的話,你會怎麼排?

按圖上從左到右的順序來看看六人的實際實力。

雷神

通過雷達圖可以看到雷神很全面,多項數據都是滿分,幾乎沒有弱點,然而智力這塊兒只有中等水平。如果你看過雷神系列就會知道他的智商的確很捉急。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

黑寡婦

寡姐身為六人組裡唯一的女性,不會飛也沒有什麼道具,最拿手的就是肉搏,《鋼鐵俠2》首次出場表現就奠定了她的風格。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

鷹眼

箭筒里永遠射不完箭的鷹眼在《雷神1》中首次亮相,實力差不多是最弱的,感覺《復聯1》中演反派更厲害。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

綠巨人

終於出現個和雷神實力匹配的對手,三項能力滿分,格鬥技和速度中等,浩克的確格鬥能力沒那麼強,在《復聯3》開頭分分鐘被滅霸給收拾了。智商比雷神高,畢竟是擁有 7 個博士頭銜的人。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

美國隊長

整個系列一共說了三次「I can do this all day.」 的美隊給人最大的錯覺就是:和誰都能五五開,然而畢竟肉身,實際沒有那麼強。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

鋼鐵俠

最後是最帥氣最聰明的托尼了,感覺沒有電影中想的那麼強大,主要他演得好印象分高。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

mark

來個彙總看得更清楚,初代六人組孰強孰弱這下有答案了吧?

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

十位重要英雄實力

除了六位初代英雄,陸陸續續還出現了很多其他英雄,挑選十位露臉最多的來看看。

洛基

有「錘」必有「基」,雖然電影中洛基飾演的是反派,但其實不壞,跟雷神相愛相殺帶來不少笑料,所以重要人物中必須「Loki」的名字。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

驚奇隊長

很多人都說驚奇隊長應該是《復聯》中最牛逼的人,在《復聯4》打了個醬油。戰鬥力的確很驚人,但 DC 中還有一個比她還厲害的男性「驚奇隊長」,一會兒說。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

緋紅女巫

不得不說緋紅女巫是又美又能打,差點把滅霸撕了。我不會告訴你他們倆早在另外一部電影《老男孩》里也上演了一齣別樣「大戰」。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

幻視

《復聯2》中誕生就擁有心靈寶石的幻視著實牛逼,把奧創打得滿地找牙,但到了後面怎麼就淪落到被保護的境地了。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

奇異博士

捲福飾演的奇異博士還是很牛逼,有時間寶石、有斗篷還有酷炫的阿戈摩托之眼。《復聯4》最後對著托尼豎起了一根手指,大概是說:「福爾摩斯,只能有一個。」

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

蟻人 & 蜘蛛俠

蟻人和蜘蛛俠差不多,飛來飛去。蟻人是復聯少數幾個絕頂聰明的人,可以說《復聯4》能夠逆轉,蟻人功勞很大。蜘蛛俠實力均衡,早在《鋼鐵俠》系列中就出場了,雖然身為托尼的小跟班,但漫畫中蜘蛛俠是漫威最大的 IP。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

黑豹 & 冬兵

要問誰比鋼鐵俠還有錢,那必然是「振金王國」瓦坎達的國王黑豹了。在去年的獨立電影中大放異彩,復聯中到沒有太多施展拳腳的機會。

要論復聯有哪幾對相愛相殺組合,除了雷神和洛基,就是美隊和冬兵了,《美隊1》中還是挺感人的。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

星爵

最後隆重出場的是星爵,也是我本人最喜歡的復聯英雄。《銀河護衛隊1》打養父,《銀河護衛隊2》打生父,《復聯34》打岳父,他才是最牛逼的「滅爸」。現實中的岳父是位了不得的人物:施瓦辛格。

雖然綜合實力不怎麼樣但銀河系尬舞天團的能力不是吹的。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

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

去掉四位稍弱人物,來對比下六人組綜合實力。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

驚隊除了智商稍微弱點,其他基本無敵,這點和雷神很像,二者綜合實力也差不多,可以說是新老成員中最厲害的了。

滅霸

正派說完輪到大 BOSS 滅霸出場了。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

看到滅霸就會想起電影中被他那寶石手套支配的恐懼,五一終於理解滅霸的初心了。而滅霸真實的實力如何呢,來看看他和雷神、驚奇隊長三人對比。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

可以看到滅霸的優缺點非常明顯,優點是和托尼一樣絕頂聰明,缺點就是速度慢,難怪電影中要靠寶石跑到地球來。綜合來看,三者單挑的話基本五五開,滅霸戴上手套的話就另算了。

漫威和 DC 英雄比

作為兩大漫畫巨頭,漫威和 DC 一直在明爭暗鬥,早些年 DC 要比漫威混得好,漫威這十幾年才起來。兩大公司手上都握有大量漫畫角色,對比一下這兩家當家英雄應該會很有意思。

DC 比較熟知的就是超人了,這裡來拿雷神和超人對比下看看。可以看到超人近乎完美,比雷神聰明速度也更快,除了格鬥稍弱雷神,總體來說是碾壓雷神的。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

DC 其他英雄又如何呢,把 700 多位英雄六項能力值彙總得到綜合實力,然後取前十名來看看。

  • 標紅色的是 DC 家的
  • 淺灰色是其他公司的
  • 深黑色的是漫威家的
最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

完全沒有想到,綜合實力最強的 10 位竟然有 8 位都來自 DC,漫威完全被碾壓,唯一登榜的是超越者(Beyonder),雷神都上不了榜。

然而問題來了,擁有如此眾多實力超強的英雄,DC 近些年為什麼風頭全被漫威壓住了?

榜單上排名第一得到了 600 滿分無敵了,來揭曉下 TA 是誰。

就是這位 Man of Miracles,別名 Mother of Existence 宇宙的創造者,上帝是他兒子。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

其他有意思的

最高的人

很多漫威英雄五大三粗,就來扒一扒哪些角色最高。排第一的是 「Ymir」超過 300 米,他是冰霜巨人的祖先,即洛基的祖先。範迪塞爾配音的 Groot 在銀護中非常高,也僅能排第 10。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

最壯的人

復聯中浩克、滅霸都很壯,可在諸多大神面前就是小巫見大巫了。排第一的就是熟悉的哥斯拉,重達九萬噸,不得不說日本人腦洞真大。第二的金剛也有九千噸。

最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

以上就是對宇宙英雄的一些簡單分析,感興趣的話可以自己試試。數據採集部分的代碼如下:

 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)))

學好Python真的很有趣,可以看看前幾天的如何學系統Python 相信很多粉絲都是漫威和DC迷,歡迎留言你心中最強的英雄是誰

獲取方式:請大家點贊關註並私信小編關鍵詞:“資料”即可獲取你需要的各類學習資料及教程。

未经允许不得转载:電影愛好者 » 最強的竟然不是滅霸?用Python給漫威和DC的英雄排個位,意料之外

分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址