大麦网数据分析
最近看到很多爬虫到各种各样数据进行分析的文章,于是自己也想小试牛刀一下。最后决定尝试爬一下大麦网的数据。
数据获取
决定了要爬去的目标,就开始对目标数据获取进行分析,通过chrome抓包分析接口,发现可以直接通过接口获取售卖信息的json数据,这样就可以省去对html的解析工作。顺便尝试一下python3的urllib3来获取数据。
1 | import urllib3 |
首先使用PoolManager来创建连接池,然后使用request方法来模拟数据获取接口请求,一开始没有添加http header伪装,在爬去到第15页左右数据时,开始出现访问被拒绝的情况。添加header以及添加两次请求间的时间价格,就可以完美的避开大麦的反扒机制。
获取到数据后,会将数据保存到树莓派的mongoDB上(也是将买回来一直吃土的树莓派用起来)。主要代码如下:
1 | from pymongo import MongoClient |
这样就完成了,大麦网数据的爬去和存盘工作。
数据分析
第一次做数据分析,爬去的数据量也不大,总共爬去了当前有效的售票信息4847条。数据量和看的其他文章完全不在一个量级。首先对爬取数据按照城市进行了分类。

可以看到意料之中的北上,排名第一第二,而第三名的武汉则场次数不到上海场次数的一半,这里只展示了排名前十五的城市。比较意外的是南京的场次数,因为以前有朋友说,南京是出了北上广深以外,演出最多的城市。然后再从地图的上直观的看一下演出分布的情况,如下图(地图动态信息链接)


从上图中可以看出,按照大麦大类来进行区分的话,售票信息最多的是话剧歌剧类。

从时间分布上来看,暑期档也是演出比较集中的时间。

可以看到上海是演唱会场次数最多的城市,第二名的海外范围比较大。

从“话剧歌剧”这个场次数占比最大的分类在进行分析,发现儿童剧是这个大麦中占比最高的子分类项目。
总结
本次做大麦网的数据爬取和分析,主要是小试牛刀。其中主要使用了python3中的额urllib3,pymongo,pyecharts,pandas等包,学习了使用urllib3进行爬虫,同时学习使用了pandas这个数据科学高频包的使用,一开始准备使用matplotlib进行数据图的绘制,但是由于汉字的问题,踩了很多坑,最后还是使用了更为熟悉的pyecharts包来进行数据图表的渲染。


