怎样利用数据爬取和分析工具写出《黄焖鸡米饭是怎么火起来的》这样的文章?
《黄焖鸡米饭是怎么火起来的》地址:黄焖鸡米饭是怎么火起来的?
1楼(未知网友)
去年开始研究做爬虫,搞了一套分布式的爬虫系统,主要目标是帮别人做数据采集。后来看到黄焖鸡米饭是怎么火起来的? - 何明科的回答,进而关注了《数据冰山》,发现里面的大数据分析的文章都相当有意思,图表也一个比一个专业。我当时的表情大约是这样的:
我的天哪,这么神奇吗? 放下手机,操起键盘,正准备也搞上一篇 “大数据分析:郭德纲和女演员的相爱相杀之后,wuli涛涛是如何火起来的”。后来转念一想,这不是赤果果的抄袭了,妈妈是怎么教导我的。再说了,以我这样的实力,写了这样的文章,以后别人还怎么写呢?
俗话说得好:授人以鱼不如授人以渔,独乐乐不如众乐乐。不如我们就以黄焖鸡米饭为例,给大家讲讲如何才能写出这样一篇图文并茂的分析文章来吧。
先来一段硬广:本文所有代码,都需要运行在本人搭建的神箭手云爬虫框架上,打算完全自己写爬虫的同学,领会精神即可。
数据来源分析
首先需要黄焖鸡米饭门店的创建时间,来分析黄焖鸡米饭随时间的增长,其次需要门店的地域信息来分析不同地域黄焖鸡米饭的增长情况。
分析大众点评的商户门店信息,可以在商户的贡献榜页面找到相关的信息,如下图:
这里需要对数据作几个近似处理:
仅选取商户名中包含"黄焖鸡米饭"的门店
将商户的添加时间近似看作门店的创建时间
大众点评无法查到已经关闭的商户,所以这里不考虑门店的关闭,仅选取现存的门店
开始写爬虫
上面分析了对数据的需求,下面就开始动手写爬虫爬取数据啦~
熟悉爬虫的人都知道,一个爬虫的基本工作流程是:
首先挑选一部分种子URL(也可以叫入口URL),并放入到待爬队列中
从待爬队列中取出一个URL,下载内容并从中抽取信息,同时发现新URL,并加入到待爬队列中。重复此步骤,直至待爬队列为空。
上面加粗了3个重点,种子URL、抽取信息和发现新URL。
种子URL
也可以叫入口URL,爬虫以这些URL为入口,以某种规则发现新的URL,最终爬遍所有想要的网页。为了爬取高效,我决定直接用大众点评的搜索,选择大众点评的搜索结果页作为入口URL,爬取结果页的所有商户并筛选后作为样本数据。大众点评的搜索也是分区域的,要把所有区域的搜索结果页都作为入口URL,形如
http://www.dianping.com/search/keyword/{region_id}/0_%E9%BB%84%E7%84%96%E9%B8%A1%E7%B1%B3%E9%A5%AD