《延禧攻略》演员大起底——利用Python+bs+pyecharts分析绘制词云和玫瑰图

《延禧攻略》演员大起底

Python+bs+pyecharts分析绘制词云和玫瑰图

最近大火的电视剧《延禧攻略》已宣告大结局,除了剧情走心,演员的那些头花啊头饰啊,戏服也都精致无比。本文利用Python抓取互联网上演员的部分数据,分析演员的姓名、星座、身高、体重和籍贯等信息,利用bs+pyecharts绘制词云和玫瑰图。

为什么这么闲?

《延禧攻略》可以说是于正的洗白之作,没有特别的戏说,也没有异想天开的改编,在基本尊重历史事实的基础上,通过魏璎珞(令妃)的视角窥探整个后宫的众生相。可以称得上“管中窥豹,可见一斑”。

某位哲人说过:一个电视剧这么火,背后一定有原因。背后绝对有JQ。又有哲人说过:内因很重要。为此决定现学现卖,抛砖引玉地分析一下演员背后的因素。

1、分析网页

step1:分析网页内容

感谢电视指南网http://www.tvzn.com/14784/yanyuanbiao.html)的数据支撑。

通过浏览网页,发现我们所需的演员信息:

step2:分析网页数据格式

通过网页格式,可知所需的信息

富察·容音

秦岚

饰演

为此,可利用beautifulsoup查找关键信息:

contents1 = soup.find('ul', class_="gclearfix").findAll("li")

step3:定点抓取数据

通过循环抓取主演姓名信息

actorName = content.find("p", class_="mh-title").find("a", class_="mh-actor")

通过循环抓取非主演姓名信息

actorName = content.find("p", class_="mh-l").find("a", class_="mh-actor")

2、汇总数据

将演员的姓氏和名字分开统计:

surnamelist = [];

givennamelist = [];

surname_dict = {}

for actorname in nameList:

surnamelist.append(actorname[0]);

for givenname in actorname[2:]:

givennamelist.append(givenname)

if actorname[0] not in surname_dict:

surname_dict[actorname[0]] = 1

else:

surname_dict[actorname[0]] += 1

3、绘制词云

利用wordcloud绘制词云:

word_count = collections.Counter(surnamelist);

# 设置词云属性

wc = WordCloud(font_path=font_path, # 设置字体

background_color="white", # 背景颜色

max_words=2000, # 词云显示的最大词数

mask=back_coloring, # 设置背景图片

max_font_size=100, # 字体最大值

random_state=42,

width=1000, height=860, margin=1,)

wc.generate_from_frequencies(word_count);

姓氏(主角背景版):

姓氏(苹果背景版):

名字:

4、进一步抓取信息

费了这么大的劲,只分析一个姓名感觉不能得到满足,通过仔细分析网页结构,有一个惊喜的发现:

每个演员都有个人的链接!!!

链接信息就在href中:秦岚

发现天然的富矿后,老夫欣喜若狂,为此加班到深夜3点,进一步分析了演员的身高、体重、籍贯和星座。

话不多说,直接看结构:

籍贯:辽宁省沈阳市沈河区

身高:165cm/5.4英尺

体重:46kg/101磅

职业:演员,歌手

生日:1981-07-17

星座:巨蟹座

性别:女

血型:b型

三围:

5、分析共同出演的电视剧

同样地,上词云。

《延禧攻略》当仁不让,高居首位。同时有额外发现,就是很多大火的电视剧《凤囚凰》《朝歌》《我们正年轻》《长歌行》等。

6、出玫瑰图,看个人信息

直接上图,不说话:

从来没有无缘无故的爱,也没有无缘无故的恨。一部热播剧的背后是几百个演员的艰辛付出和刻苦修炼。愿生活多姿,但你得足够努力!

还没关注?

快动动手指!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180919F0BHRN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券