《一出好戏》已经上映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%的网友都给出了推荐和力荐。
网友评论