庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果

文章目录

    • 导语
    • 首先,打开豆瓣,查看豆瓣评论入口
    • 根据抓包分析结果,写Java爬虫代码
    • 【庆余年】豆瓣评论分析
      • 1. 【庆余年】电视剧爱奇艺热度排行榜
      • 2. 【庆余年】豆瓣短评评论分布
      • 3. 【庆余年】豆瓣各种评论数排行分布
      • 4. 【庆余年】豆瓣各类评论投票数总和分布
      • 5. 【庆余年】豆瓣最热投票评论前20条
      • 6. 【庆余年】电视热播度随日期变化情况
      • 7. 【庆余年】关键词词云
    • 总结
    • 写在最后

导语

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第1张图片
【庆余年】这部电视,从11月份播出到现在,以迅雷不及掩耳之势崛起,迅速霸占电视剧热度头条,随着第一季的结束,基本剧情已经被大部分电视迷所熟知了,不可否认,这部电视的确是一部构思独特的故事。

一开始,大家都认为是穿越剧的题材,演绎到最后,竟然是科幻片的经典,的确令人所料不及,很多看过书的小说迷(据说这部小说热度也很高),一直在剧透。

  • 五竹是机器人?
  • 陈萍萍的椅子里面有散弹枪?
  • 范闲的母亲给他留下了一把98K(狙击枪)?

各种评论,剧透,灌水无疑给这部电影带来了疯狂的人气效应!作者猫腻,估计也吸粉无数了。

但是,小编一直认为这部电视,编剧很烂,剧情很浮夸,演技不够精湛,人员关系也错乱不堪,为什么还这么火?到底电视迷是夸的多呢,还是骂的多呢,为了了解实际情况。今天,我就用Java爬虫写了一个爬虫,爬取了爱奇艺和豆瓣电视的热度及评论,分析一下,看看结果,也让大家做个见证,这部电影,到底是好是坏。

好了,话不多说,我们开始写Java爬虫代码,具体分析!

首先,打开豆瓣,查看豆瓣评论入口

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第2张图片
打开豆瓣(https://movie.douban.com/subject/25853071/comments?sort=new_score&status=P),可以看到,豆瓣中 有一个评论的页面,到现在为止,总共记载了40220条短评数据,当然,这些评论的数据,是根据网友投票数来排序的。

使用抓包工具,可以看到,每次评论翻页,会调用接口:

https://movie.douban.com/subject/25853071/comments?start=20&limit=20&sort=new_score&status=P

接口里面,只是start的参数不同,其余都是一样的。
庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第3张图片
请求后,返回的结果是JSON串,里面封装了HTML代码:
庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第4张图片
从分析来看,对这个接口,一直循环,就可以把所有的评论得到。

根据抓包分析结果,写Java爬虫代码

根据抓包的结果,只需要循环调用GET接口就可以得到所有的评论数据,那么下一步就开始写爬虫代码。

//获取列表的方法
public boolean getList(String ip ,int port, int page, SqlSession session) {
		boolean rets = false;
		//初始化HttpClient
		DefaultHttpClient httpClient = HttpClientUtuils.handleNewHttpClient(120000, 120000) ;
		//预留代理接口
		if(ip!=null && !ip.equals("")){
			 HttpHost proxy = new HttpHost(ip,port);
			 httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
		}
		
		String sg1 = "" ;
		HttpGet g1 = null;
		try {
			//GET请求豆瓣评论区
			g1 = new HttpGet("https://movie.douban.com/subject/25853071/comments?start="+(page*20)+"&limit=20&sort=new_score&status=P&comments_only=1") ;			
			g1.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36") ;
			HttpResponse response2 = httpClient.execute(g1);			
			sg1 = EntityUtils.toString(response2.getEntity(),"utf-8") ;		
			sg1 = StringRandomUtils.unicodeToString(sg1) ;
			//System.out.println(sg1);
						
			if(response2.getStatusLine().getStatusCode() == 200 && sg1.indexOf("{\"r\": 0") != -1 &&  sg1.indexOf("
") != -1) { sg1 = sg1.substring(sg1.indexOf("") + 4) ; sg1 = sg1.substring(sg1.indexOf(">") + 1) ; String votestr = sg1.substring(0, sg1.indexOf("<")).replace("\r", "").replace("\n", "").trim() ; try{ votes = Integer.parseInt(votestr) ; }catch(Exception e){ System.out.println(e.toString()); } } if(sg1.indexOf("") != -1) { sg1 = sg1.substring(sg1.indexOf("") + 4) ; sg1 = sg1.substring(sg1.indexOf(">") + 1) ; comments = sg1.substring(0, sg1.indexOf("<")).replace("\r", "").replace("\n", "").trim() ; comments = EmojiFilter.filterEmoji(comments); } //打印结果 System.out.println(comentId + "--" + comentPersonId + "--" + comentPersonName+ "--" + votes + "--" + comentLevel + "--" + comentDate + "--" + comments); } }else{ System.out.println("请求失败"); Thread.sleep(60000); getList(ip ,port, page, session) ; } rets = true; }catch(Exception e){ System.out.println(e.toString()); e.printStackTrace() ; rets = false; }finally{ //关闭httpclient // if(httpClient !=null){ // httpClient.getConnectionManager().shutdown(); // } } sg1 = null ; return rets; }

结果,程序抓包运行到11页的时候发现,后面的数据,竟然无法抓取了,总共抓取了220条数据。好吧,可能豆瓣也对爬虫做了限制措施。既然无法爬取到所有的数据,那就对着200多条数据,做一个分析。

【庆余年】豆瓣评论分析

分析使用图表和词云方式展示。

1. 【庆余年】电视剧爱奇艺热度排行榜

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第5张图片
从爱奇艺的热度排行榜来看,【庆余年】以8715分热度,排名第一,下面接着是【精英律师】和【剑王朝】,热度榜中,我是更为喜欢【剑王朝】一些,虽然它的热度不如【庆余年】。
.

2. 【庆余年】豆瓣短评评论分布

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第6张图片
豆瓣评论中,庆余年的好评率达到73%,差评,仅仅16%,一般11%,可见,大部分人对庆余年的评论,还是偏向于积极方向的,不过这个数据,有些片面,毕竟,这只是人数比,不能完全说明情况。下面我们继续分析。
.

3. 【庆余年】豆瓣各种评论数排行分布

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第7张图片
这个评论数据,是针对我们抓取的结果进行的分析,200多条数据中,有104条评论显示,很差,有70多条数据显示较差!
从这里可以看到,【庆余年】的口碑好似很差,80%以上的有效评论,竟然都是负面评论,终于,数据揭开了人气效应背后的真相!电视的质量,真的如此不堪?
不过不要着急,我们继续看其他分析结果。

4. 【庆余年】豆瓣各类评论投票数总和分布

庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第8张图片
大家都知道,豆瓣是可以投票的,那我就对投票的总数做了一个分析!
但是从数据分析,我竟然看到了一个和评论数不一样的结果,评论数显示,大部分是差评,然而投票数,推荐(4星)却遥遥居榜首,力荐(5星)居榜3位!
其实,从这里,大概可以看出,这部电视,虽然骂的人很多,但是挺的人也不少!
.

5. 【庆余年】豆瓣最热投票评论前20条

那就看看评论的前20,都说了一些什么?
庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第9张图片

  • 评论第一名,是一位叫做 红骷髅 的豆瓣用户评论的,内容是:达康书记的脸配上陈萍萍的名字,有种莫名的喜感。 这个评论,比较中肯(哈哈,貌似没有说错了),属于推荐指数!
  • 评论第二名,是一位叫做 -Alice的豆瓣用户评论的,内容是:带着镣铐能把舞跳这么好我是很服的,开头的穿越设定很惊艳,第一集这个还原度真心没得说,小范闲人畜无害的笑我可太喜欢了,必须五星好评走起来,等一手我最爱的大东山之战~
  • 从评论前20来看,有13个评论属于推荐级别,有5个评论,属于贬低内容的,但总体来看,推荐的指数, 还是远远高于贬低指数。

6. 【庆余年】电视热播度随日期变化情况

下面看看,从11月26号以来,电影的评论热度。
庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第10张图片

  • 大概可以看到,11月26号,热度很高,98个评论,后面的评论数,就越来越低了,可能是我拿到数据太少的问题,这里只能做一个参考。

7. 【庆余年】关键词词云

最后,对【庆余年】这部电视,评论的关键词做了一个词云,看看大家都是怎么说的吧!
庆余年“真的”被大家喜欢吗?Java爬虫分析告诉你结果_第11张图片

  • 从词云上来看,陈道明是这部电视的一个魂,很多人,估计就是奔着这个演员去的
  • 内容貌似有褒有贬,说法不一!
  • 但是无疑,猫腻作者火了

总结

从Java爬虫抓包得到的数据,大概是了解了【庆余年】基本的状况。当然,这部电视,也有值得夸奖的地方,但是也有不足的地方,从网络评论来看,也是褒贬不一,没有一个统一的说法。但是从舆论造势来看,这是一部成功的作品,它已经很完美的引起了大家的注意,获取了足够的热度。当然,希望猫腻作者不急不躁,能继续给我们带来更好的作品!

写在最后

Java爬虫作为一个分析工具,的确很有效,有会Java,喜欢爬虫的朋友,可以加我的微信公众号,上面有Java爬虫入门的一些教程,欢迎关注啊!公众号:Java爬虫之家。

从零入门学Java爬虫,希望你喜欢!

你可能感兴趣的:(HttpClient,网络爬虫)