美文网首页
上映17天,票房12.17亿,4千多条影评,看看《一出好戏》是否

上映17天,票房12.17亿,4千多条影评,看看《一出好戏》是否

作者: python进阶我在路上 | 来源:发表于2018-08-26 00:30 被阅读0次

《一出好戏》已经上映17天,作为黄渤首部执导的电影,已经拿下12亿的票房,豆瓣评分仍然高达7.3分,可以说此片成绩非常好。作为爬虫学习者,作者很想知道网友对于黄导的这部电影的感受到底怎么样。本文将会通过Python爬取电影四千多条评论,将爬取的数据存储导数据库,并对影评标题制作词云,最后对网友评分做分析。

01 爬取内容


02 主要爬虫代码(数据爬取和数据存储及评分可视化代码)


#导入相应的库

from lxml import etree

import requests

import time

import pymysql

from matplotlib import pyplot as plt

from pylab import *

# 连接数据库及光标

conn = pymysql.connect(host='localhost', user='root', passwd='123', db='sys', port=3306, charset='utf8')

cursor = conn.cursor()

# liked_gather 用于存放爬取到的所有评分

liked_gather = []

# 定义获取详细页URL的函数

def get_info(url):

    html = requests.get(url)

    selector = etree.HTML(html.text)

    infos = selector.xpath('//div[@class="review-list  "]/div')

    for info in infos:

        Id = info.xpath('div/@id')

        time = info.xpath('div/header/span[2]/@content')

        liked = info.xpath('div/header/span[1]/@title')

        title = info.xpath('div/div/h2/a/text()')[0]

        useful = info.xpath('div/div/div[3]/a[1]/span[1]/text()')[0].strip()

        useless = info.xpath('div/div/div[3]/a[2]/span/text()')[0].strip()

        respond = info.xpath('div/div/div[3]/a[3]/text()')[0]

        liked_gather.append(liked)

        # 将获取的信息插入数据库   

        cursor.execute(

            "insert into ylxx (Id,time,liked,title,useful,useless,respond) values(%s,%s,%s,%s,%s,%s,%s)",

            (str(Id), str(time), str(liked), str(title), str(useful), str(useless), str(respond)))

# 程序主入口

if __name__ == '__main__':

    # 构建URLS并循环调用函数

    urls = ['https://movie.douban.com/subject/26985127/reviews?start={}'.format(str(i*20)) for i in range(1,216)]

    for url in urls:

        get_info(url)

        # 睡眠2秒

        time.sleep(2)

    conn.commit()

    # 将评分分类汇总,且利用matplotlib做柱状图

    like_labs =  [['很差'],['较差'],['还行'],['推荐'],['力荐']]

    frequencies = []

    for like_lab in like_labs:

        frequency = liked_gather.count(like_lab)

        frequencies.append(frequency)

    label_list = ['很差','较差','还行','推荐','力荐']

    mpl.rcParams['font.family']=['Microsoft YaHei']

    plt.xticks(arange(5),label_list)

    plt.bar(arange(5),frequencies,facecolor='#9999ff',edgecolor='white')

    plt.title('一出好戏评分分布',fontsize='large',fontweight='bold')

    plt.show()


爬取到的数据如下:

获取到四千多条影评后,讲影评的标题内容提取出来,通过jieba库做分词,最后通过wordart制作词云,词云如下 可以看出,排名靠前的热词分别是黄渤、人性、导演、荒岛、惊喜、喜剧等,可以看出大家对电影的评价还是不错,很多人都是冲着黄渤来的,当然其他演员如舒淇和张艺兴等也是此电影的亮点。 通过评分的分布,可以看出观众对本片还是非常认可的,81%的网友都给出了推荐和力荐。

相关文章

网友评论

      本文标题:上映17天,票房12.17亿,4千多条影评,看看《一出好戏》是否

      本文链接:https://www.haomeiwen.com/subject/pfyniftx.html