对豆瓣热门图书通过网络爬虫进行信息爬取并完成数据分析

一直对爬虫比较感兴趣,也经常看到网络上其他人自己做的爬虫小项目。其实更多的人是把爬虫当作一种炫技手段(包括我...),把数据爬取下来往数据库一丢,最多初步清洗一下就不再管了。这种数据放在那里其实并没有任何价值,反倒占用资源。

所以在编写爬虫程序时,不应该把重点只放在对数据的抓取上面,而是要想到接下来的数据分析,这样抓取下来的数据就更便于我们进行调度与管理。

其实说了这么多,本篇文章的重点应该是数据分析才对,所以爬虫的工作就少说一些,因为网上的爬虫教程一抓一大把,足够我们进行基本的小项目了。这次我选择了大家分析比较多的豆瓣图书板块进行数据分析,很初步也很菜鸟,主要是对自己的工作做一个总结,当然如果能够对大家有所帮助则是最好。

首先我选取的是豆瓣读书Top250这个豆瓣网上年头久远的排行榜,相信很多人都是根据这个榜单来选择好的电影或图书的,根据豆瓣官网,这个榜单是这样生成的:

“豆瓣用户每天都在对“读过”的书进行“很差”到“力荐”的评价,豆瓣根据每本书读过的人数以及该书所得的评价等综合数据,通过算法分析产生了豆瓣图书 Top 250“

可见,豆瓣top250榜单的内容和排序应该是实时都在更新的,我在今年的一月份系统性的爬取过一些数据,所以这个分析我使用当时的数据进行,可能会和如今看到的榜单有细微的偏差,不过没啥影响啦。

我的爬虫工作分为两部分,一部分是对这250本书的概况内容进行爬取,包括书名、作者、出版年份、评分、评分人数等,例如下面这本《追风筝的人》,豆瓣已经帮我们把信息整理的很整齐,这一部分的信息获取起来很容易,用一小段代码花个二十分钟就能搞定,但是这些数据可以帮助我们从宏观上了解去这些图书;

另一部分则是每一本书的热度排行前200的短评,这一部分短评根据“有用”数来排序,如下图所示,排行越高说明这条评论越能得到大家的认可,也从侧面大多数人对这本书的评价。

抓取这一部分数据用了我很长的时间,其实抓取程序并不复杂,但由于数据量较大,我们需要不断重复的访问豆瓣网页,这就不可避免的会被豆瓣的反扒机制发现,这就需要我们创建ip池,不断的改变自己的ip。网上是有一些免费的ip供我们使用的,例如西刺代理,但是毕竟是免费的,ip质量也就可想而知。终于,爬了大约一周的时间,我终于把250本书的短评信息爬了下来,做了一些粗略的处理后,爬到手的数据大约有10万条左右。表的详情分布请看:

下面终于要进入数据分析的部分了,我首先对top250书籍的所属国家进行了统计,得到了如下的分布图:

图1 豆瓣读书top250国家分布图

从图片可见,国内图书数量占到了半数以上,紧随其后的是美国、日本和英国。而其他国家的图书占比则相当小,从数量来看大多为1-2本。而GDP排名前三甲中、美、日刚好占据本次分布前三甲,充分说明了书籍文化对一个国家综合实力强弱的体现。当然,由于受众基本上全为中国人,所以中国书籍排行第一则显得说服力没有那么强大。如果国外也有类似的读书社区网站并做相似的分析,那中国书籍还能否名列前三甲呢?

接着,我统计了这些书籍的出版年份,统计信息如下:

图2 豆瓣读书top250发表年份统计图

从这张分布图可以看出,图书出版年份在在1997-2011年间类似呈现正态分布,在2007年达到顶峰。这其中较早年份的书主要是一直受豆瓣用户喜爱的经典之作,同时也包括许多网络文学作品。1997年,网络文学作品开始兴起,在2009年左右达到顶峰,大量的优秀网络文学进入大众的视野。然而,2010年后的图书分布则成下降趋势,说明近几年来涌现的图书能够撼动之前经典图书地位的并不多,不过这也不能完全说明并没有好书的出现,毕竟那些经典图书早已在人们心中占据了牢牢的地位。

接着我对评论的热度按五大洲进行了数据分析,结果如下:

图3 top250数据我大洲国家评论数随时间变化曲线图

从图中的曲线可以看出,从2007年豆瓣读书成为广大爱书用户关注的知识分享平台之后,top250排行榜书籍的新增评论数在逐年增高,推荐图书作者是亚洲、欧洲和美洲的书刊每年新增评论数的变动尤为明显,一方面是通过国家分布图可知,分布在这三大洲的top250推荐书籍的作者居多,另一方面是这三个达州相比较澳洲和非洲人口基数更大,书籍产出率更高。需要指出的是,非洲尚无图书进入豆瓣图书top250排行榜,澳洲仅有一本。而对于另外三个大洲的图书被评论数目的变化趋势相近。由图中可以看出美洲和欧洲的书籍同样受豆瓣用户关注,虽然两者年度被评论数的差距在图中表现不明显,但是来自欧洲作者的书籍被评论数总是略高于来自于美洲作者的书籍。这倒是个有趣的巧合。

由于豆瓣图书top250并没有对各本书进行明确分类,于是我根据豆瓣读书首页的豆瓣读书标签对这250本书进行了标签分类,图书大类分布图呈现如下:

图4 top250图书大类分布图

由上图可以看出,相比工具性和实用性更强的科技类图书、随性和写实性更像的生活类图书、观赏性更强漫画类图书,文学小说类依旧是互联网大众用户喜欢阅读的图书,90%的占比已经能说明大众所希望在图书上获得更多的趣味性体现和细腻的情感寄托,所以我们猜测在这些文学类小说中情感类小说会收到更多读者的喜爱。

为了更进一步的文学小说类图书中哪种类型小说更受大众的喜爱,我将文学类图书按照标签进行了细分,并画出分布图:

图5 文学类图书小类分布图

通过图5所示,我们发现有一半以上的热门小说是言情类小说,这也符合我们之前的猜测,更细腻的感情故事与治愈性更强的文章是大多数读者所喜爱和追捧的。其次是历史类小说,比如top250图书中的《明朝那些事儿》这种长篇历史小说,在top250排行榜上也身居高位,受广大中国读者的喜爱。

接下来我进一步这些文学类小说的受关注量随着时间的变化,如图6所示:

图6 各类文学小说评论数随年份变化折线图

我们看到言情类、科幻类与历史类小说每年新增评论量变动幅度较大,其中言情类小说新增评论量变动幅度最大,但是从2007年开始,三类图书的新增评论量都是到2011年达到了顶峰。这固然和top250图书中言情类、历史类和科幻类小说占比大有关,然而我们发现网络类、武侠类和童话类小说的新增评论量却是在2013年达到顶峰。尤其是网络类小说,从2008年开始受关注度不及心理、推理、恐怖和童话类小说,却从2009年开始超越其他三类小说,新增评论量逐年走高,直到2013年达到顶峰。对比受大众喜爱最多的言情类小说新增评论量于2011年开始逐年下降,网络文学于2013年才开始下降的现象,也符合图2中网络文学对传统图书的冲击的结论。

根据上面的分析我们知道文学类的图书占总体比重远大于其他类别。那么,读者对不同年代的文学作品的关注度随时间该如何变化呢。由此本文进行了如下分析,如图7所示。

图7 《围城》、《红楼梦》和《三体》书评数量随时间变化曲线图

文中选取《红楼梦》(排行序号为11,豆瓣评分为9.6)、《围城》(排行序号为3,豆瓣评分为8.9)和《三体》(排行序号为9,豆瓣评分为8.8)分别作为古典文学,近代文学和当代文学的三本代表性图书,并分析这些图书从2005年到2017年期间每个年度被评论数目的变化趋势情况。图书被评论数目的整体趋势情况与五个区域国家评论数随时间变化情况基本吻合。《三体》获得过2011年全球华语科幻“星云奖”最佳长篇小说金奖、《当代》长篇小说2011年度五佳图书以及2015“雨果奖”。这都为其占据榜单较高位置奠定了基础。虽然相较于《三体》的短期爆发,《红楼梦》和《围城》表现较为平缓,但三者的被评论数都下降明显。鉴于这种情况,关注度分别与被评价数目和相应评价被点赞数目需要进一步探究,本文不做进一步分析。

图8图书排名、图书被评论的数目以及图书豆瓣评分的相互关系

在直观地认知中,豆瓣排行榜中排行靠前的图书应该受到更多关注。为了证实这个观点,文中分析了图书排行序号与被评论数目的关系。如图8(a)所示,有趣的是,图书的被评论数与排行序号不仅呈正相关,而且符合类双指数关系(图8(b)。由此可知,随着时间变化,图书的排行会有变动。但是由于排行靠前的图书被评论数比较大,对于排名靠后的图书冲榜是不容易的,因为在短时间内增加指数倍的被评论数是很难的。

接下来继续分析图书被评论数目与图书豆瓣评分之间的关系,如图8(c)所示,对于被评论数目高的图书,其对应的豆瓣评较高。这类图书被评论的数目中对此书持正面态度的评论占的比重大。在此,我们做了这样一个假设,就是图书的被评论内容的褒贬程度量化线性正相关于评论者对此书打分的分布。而从图中可以看出,多数图书的被评论数目小于50000条。对于这类图书,被评论数目对评分影响不明显。可以看出,在被评分数目大于50000条的区间上,图书的豆瓣评分随着被评论数目增大而向高分(约9.0分)收敛。

上文已经分析了图书被评论数目与图书豆瓣评分之间的关系,那么图书的排名与评分之间的关系同样引人注目,由图4(d)中的结果可以总结出图书的排行序号对图书的评分影响不直观。但是需要指出来的是,排行前250的图书的评分都在6.0以上,集中在8.5附近。其中,在此排行中豆瓣评分最高的是《红楼梦》(9.6分),在榜单中排行序号为11。自然而然地,评分比较低的图书(评分低于6.0)无法进入排名前250的排行榜。另外,对于排名靠前的图书,即使有争议,多数人还是持正面态度。从分析结果可知,如果读者想要在豆瓣排行榜中选择排名靠前的图书作为推荐图书,那么推荐结果不仅是大众所关注的图书还是评分比较高的图书。而读者想要读到更精品的书,还是需要单纯靠评分情况去检索图书。