当前位置:大数据数据分析 → 正文

大数据分析--在豆瓣谁最受关注?

责任编辑:editor006 作者:石苏 |来源:企业网D1Net  2015-04-13 13:29:56 本文摘自:豆瓣

豆瓣

数据的意义在于从中发现有趣的事情,以了解这个世界,体验一种创造性的快乐。我对豆瓣很有兴趣,它很特别,在国内外没有可类比的公司。对它的探究,要从研究豆瓣的用户开始。

如果要研究豆瓣的用户,先要抓取豆瓣的用户信息。豆瓣的用户的主页形如:http://www.douban.com/people/laoluo/,这个是老罗的豆瓣主页,在右下角有“罗永浩的关注”,里面有他关注的8个用户。

如果想抓豆瓣,最简单的方式是,从任意一个用户开始,比如老罗,先抓取http://www.douban.com/people/laoluo/,把页面存起来,然后找到他关注的8个用户,记下ta们的用户ID,然后再抓取ta们的主页,再找他们关注的用户,循环不断地抓下去,几乎可以抓取豆瓣用户的所有用户。

我试了几种开源的Java爬虫,有的叫spider,有的叫crawler,其实意思都一样,业内常用的是Nutch,但体量有点大,粗略看了下代码有几万行,读它的代码可能比较耗时。最后选了crawler4j,它的代码量只有几千行,然后用它的库写了一个定制版的豆瓣crawler,从任意一个用户主页开始抓豆瓣的用户资料。定制crawler用了两个线程,一个线程负责抓页面,一个线程负责把数据存到硬盘。不好用多个线程抓--豆瓣的 robots.txt即http://www.douban.com/robots.txt的指定抓取延迟不小于5秒,抓太快了会被禁掉的,这种情况下抓一个用户要用6秒时间,一天能抓60/6*60*24=14400个,一个月能抓43万个用户,豆瓣注册用户有6000万,需要139个机月,也就是139台机器抓一个月。如果在云上租139台机器,一个月的总成本大概是139*60=8340 块,租一台入门级的机器一个月60块搞得定的,做抓取绰绰有余,只是要把crawler改成分布式的才行。每个用户页面大概60k左右,1G存储1.7万个用户,6000万用户的容量不到4T。抓取线程要考虑主动注销的用户,存储线程要考虑单个目录的最大文件容量,默认每个目录存1000个文件即可。定制 crawler用糙快猛的方式搞定的,大概500多行代码。话说8千块抓豆瓣的所有用户资料不知道值不值,我觉得挺值的---应该有很多好东西可以算出来的,随随便便搞出来卖分析报告也能值这个价啊,还可以卖给好几家呢。如果要抓所有的用户关系花时间要更多了---关注者是分页的,想做类似 Facebook的graph search需要抓更多的页面。

大概抓到5万个用户的时候,我就开始做计算了,用 htmlcleaner+jython处理页面文件,最关键是找到ta们被多少人关注,被关注数表明它们的重要性。尽管5万个用户对6000万个全部用户来说太少了,还有有一些规律的---此前有一个关注榜,记录的是关注在5000以上的豆瓣达人,它是2012年出来的,在这里http://site.douban.com/144692/widget/forum/7144906/discussion/44924707/,我的结果跟它有相当一部分的重合,可见尽管样本数量少也是有效果的。

关键字:crawler页面文件

本文摘自:豆瓣

x 大数据分析--在豆瓣谁最受关注? 扫一扫
分享本文到朋友圈
当前位置:大数据数据分析 → 正文

大数据分析--在豆瓣谁最受关注?

责任编辑:editor006 作者:石苏 |来源:企业网D1Net  2015-04-13 13:29:56 本文摘自:豆瓣

豆瓣

数据的意义在于从中发现有趣的事情,以了解这个世界,体验一种创造性的快乐。我对豆瓣很有兴趣,它很特别,在国内外没有可类比的公司。对它的探究,要从研究豆瓣的用户开始。

如果要研究豆瓣的用户,先要抓取豆瓣的用户信息。豆瓣的用户的主页形如:http://www.douban.com/people/laoluo/,这个是老罗的豆瓣主页,在右下角有“罗永浩的关注”,里面有他关注的8个用户。

如果想抓豆瓣,最简单的方式是,从任意一个用户开始,比如老罗,先抓取http://www.douban.com/people/laoluo/,把页面存起来,然后找到他关注的8个用户,记下ta们的用户ID,然后再抓取ta们的主页,再找他们关注的用户,循环不断地抓下去,几乎可以抓取豆瓣用户的所有用户。

我试了几种开源的Java爬虫,有的叫spider,有的叫crawler,其实意思都一样,业内常用的是Nutch,但体量有点大,粗略看了下代码有几万行,读它的代码可能比较耗时。最后选了crawler4j,它的代码量只有几千行,然后用它的库写了一个定制版的豆瓣crawler,从任意一个用户主页开始抓豆瓣的用户资料。定制crawler用了两个线程,一个线程负责抓页面,一个线程负责把数据存到硬盘。不好用多个线程抓--豆瓣的 robots.txt即http://www.douban.com/robots.txt的指定抓取延迟不小于5秒,抓太快了会被禁掉的,这种情况下抓一个用户要用6秒时间,一天能抓60/6*60*24=14400个,一个月能抓43万个用户,豆瓣注册用户有6000万,需要139个机月,也就是139台机器抓一个月。如果在云上租139台机器,一个月的总成本大概是139*60=8340 块,租一台入门级的机器一个月60块搞得定的,做抓取绰绰有余,只是要把crawler改成分布式的才行。每个用户页面大概60k左右,1G存储1.7万个用户,6000万用户的容量不到4T。抓取线程要考虑主动注销的用户,存储线程要考虑单个目录的最大文件容量,默认每个目录存1000个文件即可。定制 crawler用糙快猛的方式搞定的,大概500多行代码。话说8千块抓豆瓣的所有用户资料不知道值不值,我觉得挺值的---应该有很多好东西可以算出来的,随随便便搞出来卖分析报告也能值这个价啊,还可以卖给好几家呢。如果要抓所有的用户关系花时间要更多了---关注者是分页的,想做类似 Facebook的graph search需要抓更多的页面。

大概抓到5万个用户的时候,我就开始做计算了,用 htmlcleaner+jython处理页面文件,最关键是找到ta们被多少人关注,被关注数表明它们的重要性。尽管5万个用户对6000万个全部用户来说太少了,还有有一些规律的---此前有一个关注榜,记录的是关注在5000以上的豆瓣达人,它是2012年出来的,在这里http://site.douban.com/144692/widget/forum/7144906/discussion/44924707/,我的结果跟它有相当一部分的重合,可见尽管样本数量少也是有效果的。

关键字:crawler页面文件

本文摘自:豆瓣

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^