虽然受疫情影响,部分地区电影院被迫停业,但从大年初一创下中国影史上第二个单日总票房的数据来看,2022年春节档大家的观影热情依然旺盛。很高。大年初一上映当天,从票房数据来看,《长津湖之水门桥》一马当先,《四海》《这个杀手不太冷静》《奇迹·笨小孩》紧随其后,动画片《熊出没》表现强劲。《狙击手》令人遗憾。目前,多部真人豆瓣电影已经上映。在本文中,我们使用Python来爬取这些豆瓣影评。爬取的具体分析过程这里不再赘述。:url='https://accounts.douban.com/j/mobile/login/basic'headers={"User-Agent":'Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0)'}#龙岭迷窟网站,为了动态翻页,在start后添加格式化数字,短评页面有20条数据,每页添加20条数据url_comment='https://movie.douban.com/subject/35215390/comments?start=%d&limit=20&sort=new_score&status=P'data={'ck':'','name':'用户名','password':'密码','记住':'false','ticket':''}session=requests.session()session.post(url=url,headers=headers,data=data)#初始化4个列表保存用户名,星级,时间,commenttextusers=[]stars=[]times=[]content=[]#抓取500条,每页20条,也是豆瓣给iinrange(0,500,20)的上限:#获取HTML数据=session.get(url_comment%i,headers=headers)#状态码200表成功print('th',i,'page','statuscode:',data.status_code)#暂停0-1秒防止IP被封time.sleep(random.random())#解析HTMLselector=etree.HTML(data.text)#使用xpath获取单个页面的所有评论comments=selector.xpath('//div[@class="comment"]')#遍历所有评论,获取评论中评论的详细信息:#获取用户名user=comment.xpath('.//h3/span[2]/a/text()')[0]#获取星级star=comment.xpath('.//h3/span[2]/span[2]/@class')[0][7:8]#获取时间date_time=comment.xpath('.//h3/span[2]/span[3]/@title')#某时间为空,需要判断是否len(date_time)!=0:date_time=date_time[0]date_time=date_time[:10]else:date_time=None#获取评论文本comment_text=comment.xpath('.//p/span/text()')[0].strip()#添加所有信息到列表users.append(user)星星。append(star)times.append(date_time)content.append(comment_text)#用字典包装通讯ent_dic={'user':users,'star':stars,'time':times,'comments':content}#转换为DataFrame格式comment_df=pd.DataFrame(comment_dic)#保存数据comment_df.to_csv('data.csv')有了评论数据,我们可以通过词云直观感受一下。主要代码实现如下:df=pd.read_csv("comment.csv",index_col=0)cts_list=df['comments'].values。tolist()cts_str="".join([str(i).replace('\n','').replace('','')foriincts_list])stop_words=[]withopen('stop_words.txt','r',encoding='utf-8')asf:lines=f.readlines()forlineinlines:stop_words.append(line.strip())#jiebaword_list=jieba.cut(cts_str)words=[]forwordinword_list:如果wordnotinstop_words:words.append(word)cts_str=','.join(words)print(cts_str)stylecloud.gen_stylecloud(text=cts_str,max_words=300,collocations=False,font_path="SIMLI.TTF",icon_name="fasfa-arrow-circle-right",size=800,output_name="comment.png")Image(filename="comment.png")首先我们来看《四海》,为什么《四海》的口碑没有传遍全球?看看观众怎么说:那就看《这个杀手不太冷静》,作为一部喜剧,豆瓣的评分还不错,看看观众怎么说:那就看《这个杀手不太冷静》,现在的评分比第一部还低,看看什么观众说:那就看《奇迹·笨小孩》吧,收视率和票房都中规中矩,看看观众怎么说:那就看《狙击手》吧,郭老师执导,票房不行,收视率暂居第一,看看观众是怎么说的:源码是在公众号Python小二后台回复m2022得到的~
