爬取破冰行动:敢拍好看。

爬取电视剧《破冰行动》数据。

与此同时我也发现了爱奇艺对电视剧进行数据分析的一个网站——爱奇艺指数。

http://index.iqiyi.com/q/?name=%E7%A0%B4%E5%86%B0%E8%A1%8C%E5%8A%A8&aid=226128201

 

 

 

/ 01 / 播放地域

 

数据就是从网站上拿的,然后通过pyecharts生成地图。

 

爬取代码就不放了,也比较简单,给大家展示一下数据就好。

 

 

这里感觉数据应该是各地区的播放量。

 

import pandas as pd

# 读取数据
df = pd.read_csv('map.csv', header=None, names=['name', 'value'], encoding='gbk')

# 地图参数
value = [int(i) for i in df['value']]
attr = [i.replace('省', '').replace('特别行政区', '').replace('自治区', '').replace('回族', '').replace('壮族', '').replace('市', '').replace('维吾尔', '') for i in df['name']]

# 绘制地图
map = Map("破冰行动播放地域分布", title_pos='center', title_top=0)
map.add("", attr, value, maptype="china", is_visualmap=True, visual_text_color="#000", is_map_symbol_show=False, visual_range=[0, 60000000], is_piecewise=True, visual_split_number=5, visual_range_color=['#C5F1D8', '#99E6BB', '#6EDC9E', '#42D1A9', '#16C664'], visual_range_text=['低', '高'])
map.render('破冰行动播放地域分布.html')

 

生成分布图如下。

 

 

这里调整了一下地图颜色,所以和网站的地图看起来就差不多了。

 

可以发现沿海省份观看的人数相对较多。

 

 

/ 02 / 明星看点

 

明星看点是一张河流图,是面积图的一种形式。

 

数据是基于智能图像识别技术,自动分析出特定明星出场的片段,反映视频的角色出场比重

 

同样,数据来自于网站,爬取不做分析,仅展示数据。

 

 

这里发现12集「黄景瑜」没有出场,没有「飞飞」的日子,弹幕应该会很开心。

 

from pyecharts import ThemeRiver
import pandas as pd
import numpy as np

# 读取数据
df = pd.read_csv('people.csv', header=None, names=['num', 'value', 'name'], encoding='gbk')

# 将DataFrame转为List
data = np.array(df)
result = data.tolist()

# 绘制河流图
tr = ThemeRiver("破冰行动明星看点", title_pos='center', title_top='0', width=800, height=400)
tr.add(['黄景瑜', '吴刚', '王劲松', '任达华', '李墨之', '张晞临', '公磊'], result, is_label_show=False, legend_top='7%')
tr.render("破冰行动明星看点.html")

 

生成河流图如下。

 

 

这里pyecharts没法对集数生成时间序列,所以横坐标看着有点尴尬,实际上就是1到48集。

 

下面就是最后一集的数据图,「公磊」饰演的「林宗辉」在上一集领盒饭了,所以数据显示为0。

 

 

黑色圆圈处,为吴刚老师饰演的「李维民」被省纪委调查。

 

最后剧情表明那只是一个局而已(不愧是达康书记)~

 

 

/ 03 /  人物词云

 

获取网站上2万多条评论数据,对人物进行词云展示。

 

 

就是不知道第一列的数字是什么意思...

 

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import pandas as pd
import random
import jieba

# 读取数据
df = pd.read_csv('iqiyi.csv', header=None, names=['num', 'comment', 'key', 'emotion', 'type'], encoding='utf-8-sig')

# 设置文本随机颜色
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
    h, s, l = random.choice([(188, 72, 53), (253, 63, 56), (12, 78, 69)])
    return "hsl({}, {}%, {}%)".format(h, s, l)


def create_wordcloud(df, picture):
    """
    生成标题以及摘要词云
    """
    words = pd.read_csv('chineseStopWords.txt', encoding='gbk', sep='\t', names=['stopword'])
    # 分词
    text = ''
    for line in df['comment']:
        text += ' '.join(jieba.cut(str(line), cut_all=False))
    # 停用词
    stopwords = set('')
    stopwords.update(words['stopword'])
    backgroud_Image = plt.imread('iqiyi.jpg')
    wc = WordCloud(
        background_color='white',
        mask=backgroud_Image,
        font_path='C:\Windows\Fonts\华康俪金黑W8.TTF',
        max_words=2000,
        max_font_size=150,
        min_font_size=15,
        prefer_horizontal=1,
        color_func=random_color_func,
        random_state=50,
        stopwords=stopwords
    )
    wc.generate_from_text(text)
    # 看看词频高的有哪些
    process_word = WordCloud.process_text(wc, text)
    sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True)
    print(sort[:50])
    plt.imshow(wc)
    plt.axis('off')
    wc.to_file(picture)
    print('生成词云成功!')

全部评论
create_wordcloud(df, '全部.jpg')

# 包含李飞的评论
# df = df[df['comment'].str.contains('李飞|景瑜|飞|飞飞')]
# create_wordcloud(df, '李飞.jpg')

# 包含李维民的评论
# df = df[df['comment'].str.contains('李维民|书记|达康|李局|吴刚')]
# create_wordcloud(df, '李维民.jpg')

# 包含林耀东的评论
# df = df[df['comment'].str.contains('林耀东|东叔|吴劲松')]
# create_wordcloud(df, '林耀东.jpg')

# 包含赵嘉良的评论
# df = df[df['comment'].str.contains('赵嘉良|良叔|任达华')]
# create_wordcloud(df, '赵嘉良.jpg')

# df = df[df['comment'].str.contains('编剧|导演')]
# create_wordcloud(df, '编剧_导演.jpg')

 

先看一下全部评论的词云图。

 

 

口碑很不错,所以也推荐大家去看看哈。

 

先来看一下「黄景瑜」饰演的「李飞」,该剧的男主角。

 

有夸的,也有贬的,就我观察弹幕来看,贬大于夸。

 

 

/ 04 / 总结

 

相关数据已上传网盘:

链接:https://pan.baidu.com/s/1WNZzpXEXv267ZMBXF54obA 提取码:f5ut

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值