豆瓣电影首页,亮丽的风景,居然这么低的分,和同是国庆党电影差距这么大,唯一低分的还是国产木兰,差不多低分的居然是女神 刘亦菲,从小看龙叔电影、刘亦菲剑仙的人,不服了,看看评论是则么说的。
首先用python 爬取已经评论的500多条评论,剩余200多条是没看就评论的,不抓取了。
jianping = response.css(\'.main-bd a:nth-of-type(1)::text\').extract() jianping1 = [] for jianping2 in jianping: r = re.findall(r\'[^ \n]\', jianping2) # 去除 特殊符号 r = \'\'.join(r) # 转元组 jianping1.append(r) while \'\' in jianping1: jianping1.remove(\'\') while \'展开\' in jianping1: jianping1.remove(\'展开\')
然后用词云转换下,看下评论都说了啥
listOfFileName.append(\'急先锋\') listOfFileName.append(\'急先锋观后感\') listOfFileName.append(\'急先锋影评\') listOfFileName.append(\'影评\') listOfFileName.append(\'观后感\') sw = listOfFileName
去掉浑水的评论
看完大家评论的,还是大部分觉得挺好看的,就是龙叔老了,没啥打斗场面了,来了很多小鲜肉。
然后我们看看为啥评分这么低,
看到15570条,但是豆瓣牛毕,我们只能抓100条,根本无法了解什么,我就抓取他的全部影评,
大部分都是5星好评,但是豆瓣会屏蔽掉,,
豆瓣给的解释
不管,我们抓取下来分析下,
几乎给的都是满星,但是依旧阻挡不了4.9分的命运,明天抓国庆热档其他电影,究竟有多好看,评分这么高。
最后源码:
import scrapy import re import csv class Xianfeng(scrapy.Spider): name= \'xianfeng\' def start_requests(self): headers = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36\' \'cook\' } urls = [\'https://movie.douban.com/subject/27195078/reviews?start=%d\' % page for page in range(0, 720, 20)] for url in urls: yield scrapy.Request(url,headers=headers, callback=self.parse) def parse(self,response): mingzi = response.css(\'.review-list a:nth-of-type(2)::text\').extract() mingzi1 = [] for mingzi2 in mingzi: d = re.findall(r\'[^ \n]\', mingzi2) # 去除 特殊符号 d = \'\'.join(d) # 转元组 mingzi1.append(d) while \'\' in mingzi1: mingzi1.remove(\'\') pingfen = response.css(\'.review-list span:nth-of-type(1)::attr(title)\').extract() pingfen1= [] for pingfen2 in pingfen: pingfen1.append(pingfen2) shijian = response.css(\'.review-list span:nth-of-type(2)::text\').extract() shijian1= [] for shijian2 in shijian: shijian1.append(shijian2) jianping = response.css(\'.main-bd a:nth-of-type(1)::text\').extract() jianping1 = [] for jianping2 in jianping: r = re.findall(r\'[^ \n]\', jianping2) # 去除 特殊符号 r = \'\'.join(r) # 转元组 jianping1.append(r) while \'\' in jianping1: jianping1.remove(\'\') while \'展开\' in jianping1: jianping1.remove(\'展开\') \'\'\' duanping = response.xpath(\'//*[@id ="link-report"]/div/p//text()\').extract() duanping1=[] for duanping2 in duanping: duanping1.append(duanping2) \'\'\' print(\'---------write------------------\') for i in range(len(pingfen1)): fileName = \'评分.txt\' f = open(fileName, "a+",encoding=\'utf-8\') content = pingfen1[i] + \'\n\' f.write(content) f.close() for t in range(len(jianping1)): fileName1 = \'简评.txt\' f1 = open(fileName1, "a+",encoding=\'utf-8\') content1 = jianping1[t] + \'\n\' f1.write(content1) f1.close() # 3. 构建列表头 for g in range(len(mingzi1)): with open(\'xianfeng.csv\', \'a\', encoding=\'utf-8_sig\') as f: const= mingzi1[g]+ \',\' + pingfen1[g] + \',\' + shijian1[g] + \',\' + jianping1[g] + \'\n\' f.write(const) f.close()