爬取了豆瓣11W+网页,获取了5W+有效书籍信息
标签:爬虫 Python
之前写了一篇博文:利用爬虫获取豆瓣上可能喜欢的书籍,这篇博文中的爬虫可以以给定的url为原点,慢慢的向外扩散爬取书籍信息,可以获取到自己可能喜欢的书籍,但是有一个大缺点,就是只能提供一个初始url,即以一本书为基础进行推荐,而不能针对一个用户喜欢的所有书籍进行推荐。
后来想了想,可以把所有的书籍信息爬取下来,然后根据推荐算法推荐书籍。说干就干,一边调试一边爬取,一个礼拜就爬完了“大部分的”有效书籍信息。
本文主要根据原始数据进行一些简单的数据分析。
什么是有效书籍?
满足一下要求的书籍称为有效书籍:
- 至少包含书名、作者、出版社、出版年、定价、ISBN
- 评分至少大于等于7.9
- 有内容简介
- 有热评
经过观察,不满足以上所有要求的书,或者是外文书籍,或者是绝版书籍,或者是旧版书籍,或者是“垃圾书籍”,或者是“不值得”推荐书籍。之所以选择7.9作为评分阈值,是因为在博主觉得可以接受的书中,最低分为7.9分。当然,下载了源码之后,你可以修改书籍的评分阈值。
爬虫都爬取了哪些信息?
爬虫将爬取的信息保存在MongoDB数据中,每本书籍信息是一个文档,具体如下:
- 书籍url
- 评分
- 基本信息:书名、作者、出版社、出版年、定价、ISBN
- 简介
- 推荐书籍的url
- 热评
下图为数据库中《“笨办法”学Python》的具体信息(热评就不完全显示了):
原来,众人的口味是相同的
程序开始只设置代码大全(第2版)的url作为初始url。我期待的是依靠这一个url爬取计算机相关书籍的信息,然而结果令我大吃一惊,仅仅依靠这一个url,爬取了包含但不限于计算机,政治,经济,历史,文学,动漫等领域共112826本有效书籍的url. 要知道,我可是把无效书籍提供的“推荐书籍的url”也抛弃了,原来,众人的口味是“相同的”。
我们来看看几个有趣的爬虫轨迹:
- 外国文学:百年孤独<-月亮和六便士<-天才在左疯子在右<-拆掉思维里的墙<-少有人走的路<-如何阅读一本书<-暗时间<-浪潮之巅<-软件随想录<-程序员修炼之道<-代码大全
- 武侠:天龙八部<-红楼梦<-苏菲的世界<-时间简史<-上帝掷骰子吗<-歌德尔、艾舍尔、巴赫<-失控<-浪潮之巅<-软件随想录<-程序员修炼之道<-代码大全
- 漫画:海贼王<-灌篮高手<-乱马1/2<-郑玉巧教妈妈喂养<-郑玉巧育儿经-婴儿卷<-让孩子做主<-和孩子划清界限<-完整的成长<-亲子关系全面技巧<-重塑心灵<-语言的魔力<-谈话的力量<-学会提问<-你的灯亮着吗<-最后期限<-人月神话<-代码大全
查看更多爬虫的轨迹,其实能够发现从一个领域到另一个领域的书籍一般都不是专业性特别强的书籍,如《暗时间》、《人月神话》等,这些书籍就是依靠一个url爬完大部分有效书籍的关键。
通过一个url爬完了大部分有效书籍,是不是就可以得到“众人的口味是相同”的结论呢?其实我觉得是不可以的,之所以能够爬取这么多书籍,我猜测是豆瓣推荐算法的“惊喜度”比较高,比如《郑玉巧教妈妈喂养》推荐了《乱马1/2》,我觉得这两本书真的差异有点过大。所以,本节的标题其实是一个玩笑~
有效书籍评分趋势图
将除了简介和热评意外的信息输出成Excel文件格式,以方便做一些简单的处理。
将所有“有效书籍”按照评分排序,得到有效书籍评分趋势图:
该图与我们的常识相符合,即好书总是少的,评分越低的书越多。9分(含)以上的书籍占所有书籍的10%左右,所以9分以上的书真的都是很好的书。
说实话,万万没想到还有11本10分的书,随机选几本看一下:《殷周金文集成(修订增补本共8册)(精)》,《宇宙兄弟(7)》,《動力取向精神醫學–臨床應用與實務》。
这些书评分人数普遍较少,基本都是冷门的方面,所以能够来豆瓣评分的应该都是特别喜欢的,故评分为10分,也不奇怪。
最后一本在博文发表时已经不是10分,而是9.9分了……
其中《宇宙兄弟(7)》没有热评,应该算是“无效书籍”,应该是调试中不小心爬到的“无效书籍”,可以经过后续处理删除掉。
将所有书籍按照评分排序,可以看到好多漫画的评分很高,如《灌篮高手》、《海贼王》,再做推荐算法的时候,不能仅仅依靠评分来推荐,所以后期我准备再改进一下爬虫,给书籍加上标签信息。
各出版社有效书籍条形图
我们来看看哪些出版社出版的“有效书籍”最多吧(前30名):
不出意外,文学类的出版社遥遥领先。记得看到过一句话:“小说印数3000只能说是一般般,甚至较差。但是技术书籍印数3000,就算不错了,如果能够再版,一般都是经典之作了。”
技术类“有效书籍”排名第一的出版社是人民邮电出版社,入榜的还有机械工业出版社,电子工业出版社和清华大学出版社。博主的书几乎都是这四家出版社的,质量都蛮高的,这四家出版社的名字几乎就能保证其书籍的质量了。
除了文学类,技术类,还有漫画类也上榜了4家,可惜没有大陆的出版社。
一个有趣的现象
在爬虫爬取书籍的过程中,有一个有趣的现象,就是有一些页面怎么都打不开,一直都是
404 not found
,哪怕把浏览器头全部写上也没用,只能使用真实的浏览器打开。诚然,这里一方面是自己技术不到家,但是另外一方面,这些书籍真的都有共同的特点。
不多说什么,只列出部分书籍:
《具有中國特色的中共決策機制》
《我們最幸福》
《雪白血红》
《中華人民共和國史 第一卷斷裂與延續》
小结
- 据说豆瓣上共有308W图书,但是博主爬取到的“有效书籍”只有5W。其实每天读一本书,人一辈子也只能读不到3W本
- 好书很少,适合自己的好书更少,所以要用“推荐算法”推荐书籍,目前各大网站都有这个功能,要善于利用
- 博主的目标是实现自己的推荐系统,会加上GUI,源码在这里,希望能够得到你的star