金秋九月,丹桂飘香,在这秋高气爽,阳光灿烂的收获季节里,我们送走了一个个暑假余额耗尽哭着走向校园的孩子们,又即将迎来一年一度伟大祖国母亲的生日趴体(无心上班,迫不及待想为祖国母亲庆生)。
那么问题来了,去哪儿玩呢?百度输了个“国庆”,出来的第一条居然是“去哪里旅游人少”……emmmmmmm,因缺思厅。
于是我萌生了通过旅游网站的景点销量来判断近期各景点流量情况的想法(这个想法很危险啊)。
所以这次的目标呢,是爬去哪儿网景点页面,并得到景点的信息,大家可以先思考下大概需要几步。
本文建议有一定Python基础和前端(html,js)基础的朋友阅读,零基础可以去看我之前的文。(咳咳,不能总更小白文,这样显得我不(mei)够(you)专(xue)业(xi))。
百度的地图API和echarts
因为前几次爬虫都是爬一些文本信息,做一下词云之类的,我觉得:没!意!思!了!这次正好爬的是数据,我决定用数据的好基友——图表来输出我爬取的数据,也就是说我要用爬取的景点销量以及景点的具体位置来生成一些可视化数据。
安利一下百度的地图API和echarts,前者是专门提供地图API的工具,听说好多APP都在用它,后者是数据处理居家旅行的好伙伴,用了之后,它好,我也好(隐约觉得哪里不对)。
API是什么,API是应用程序的编程接口,就好像插头与插座一样,我们的程序需要电(这是什么程序?),插座中提供了电,我们只需要在程序中写一个与插座匹配的插头接口,就可以使用电来做我们想做的事情,而不需要知道电是如何产生的。
引入数据后的百度热力图
通过API对接的开发者与服务商
确定输出文件
有人可能说,我已经懂了API是啥意思了,可是咋个用呢。关于这一点,我很负责任的告诉你:我也不会。
但是!百度地图提供了很多API使用示例,有html基础,大致可以看懂,有js基础就可以尝试改函数了(不会js的,我默默地复制源代码),仔细观察源代码,可以知道热力图生成的主要数据都存放在points这个变量中。
这种[{x:x,x:x},{x:x,x:x}]格式的数据,是一种json格式的数据,由于具有自我描述性,所以比较通俗易懂,大概可以知道这里的三个值,前两个是经纬度,最后一个应该是权重(我猜的)。
也就是说,如果我希望将景点的热门程度生成为热力图,我需要得到景点的经纬度,以及它的权重,景点的销量可以作为权重,并且这个数据应该是json格式的呈现方式。
echarts也是一样滴(*^__^*)。
爬取数据
这次的爬虫部分是比较简单的。分析网址(去哪儿景点)→爬取分页中信息(景点经纬度、销量)→转为json文件。
分析去哪儿景点页的网址,可得出结构: