1. 写在前面的话
国庆期间,基友来我这边玩,顺便带他去看了电影《追龙》,说实话当时觉得还挺带感的。基友说:王晶这部片子真的要比以前拍的烂片好N倍,当时我还真没这么大感触。后来去了南京玩的时候,这货还想去再看一遍,卧槽,真的有这么好看吗?那就让我们来看看豆瓣的网友是怎么看的吧。放上电影图片:
2. 抓取《追龙》的豆瓣影评
由于豆瓣对一些与影片无关的或包含人身攻击等内容的短评进行了限制,所以抓取到的只有部分影评。
import pandas as pd
import re
import requests
import time
url_first = 'https://movie.douban.com/subject/26425068/comments?start=0'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}
cookies = {'cookie': 'your cookies'}
html = requests.get(url_first, headers=headers, cookies=cookies)
#下一页
reg = re.compile(r'<a href="(.*?)&.*?class="next">')
#评论内容
result = re.compile(r'<span class="votes">(.*?)</span>.*?</span>.*?<span.*?class="">(.*?)</a>.*?<span>(.*?)</span>.*?title="(.*?)"></span>.*?title="(.*?)">.*?class=""> (.*?)\n', re.S)
while html.status_code == 200:
url_next = 'https://movie.douban.com/subject/26425068/comments' + re.findall(reg, html.text)[0]
print(url_next)
zl = re.findall(result, html.text)
data = pd.DataFrame(zl)
data.to_csv(r'/Users/wsn331/Desktop/zl.csv', header=False, index=False, mode='a+')
data = []
zl= []
time.sleep(1)
html = requests.get(url_next, headers=headers, cookies=cookies)
抓取结果如下,部分截图:
3. 进行数据清洗以及数据分析
首先,我们将csv文件中的星级推荐指数提取出来,然后利用matplotlib库画出条形图,结果如下:
可以看到大部分都是在3星和4星,王晶这部豆瓣7.4分的电影还是很受欢迎的。下面我们对评论的时间进行提取分析,画出散点图结果如下:
可以看出评论人数基本集中在10月分左右,上映时间是在9月30号,也就是说我们基本可以将9月30号以及之后的评论意见作为主要参考,9月30号之前的评论我们只做次要数据参考。之后,我们对评论内容进行词云制作,看看网友评论中出现的高频词汇是哪些,结果如下:
4. 结尾
第一次写数据分析相关的东西,分析的深度和维度也不够,希望自己能继续加油!