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

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

为什么这么闲?

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

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

1、分析网页

step1:分析网页内容

感谢电视指南网的数据支撑。

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

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

step2:分析网页数据格式

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

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

        

  • </span><span style=秦岚" src="http://img.tvzn.com/role/simages/203516.jpg">富察·容音

    秦岚饰演

  • 为此,可利用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);

    姓氏(主角背景版):

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

    姓氏(苹果背景版):

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

    名字

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

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

    4、进一步地抓取更多信息

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

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

    链接信息就在href中:

    秦岚

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

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

    话不多说,直接看结构:


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

            身高:165cm/5.4英尺

            体重:46kg/101磅

            职业:演员,歌手

           生日:1981-07-17

           星座:巨蟹座

           性别:女

           血型:b型

           三围:
                                   

    5、分析共同出演电视剧

    同样地,上词云。

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

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

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

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

    直接上图,不说话:

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

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

     

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

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

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

     

    欢迎关注个人公众号:科学小镇。

     

     

     

     

你可能感兴趣的:(《延禧攻略》演员大起底——利用Python+bs+pyecharts分析绘制词云和玫瑰图)