经常听到别人说“世界那么大,我想去看看”。在有机会走出国门之前,还是先把祖国走一圈吧。都知道中国地广人不稀,旅游资源非常丰富,古文化遗址、抗战遗址、山川、河流等等,在选择目的地的时候,不少人都会非常纠结,不知道去哪更好。为了以后不再纠结,笔者打算深度解析全国的旅游景点分布。

以下进入正题。

数据抓取

去哪儿网有着非常丰富的旅游信息,不但几乎涵盖了全国所有景点,而且使用去哪儿网购买景区门票的人也非常多,所以笔者将爬取去哪儿网全国32个省市的所有景点数据。(没有抓取香港和澳门的数据,这边的景点并没有分5A、4A)

去哪儿网的门票服务中暂时还没有开通API服务,所以只能对网页解析爬取。要抓取的数据有:景点名、景区等级、地点、景区简述、价格、销量以及热度。

将需要的数据进行定位,一层一层解析,就可以把所需的全部内容抓取下来了。但并不是每一个景点的信息都是全的,所以笔者加了一个try/except进去,虽然代码有变长,但是整个程序变得更加健壮。最终,一共抓取了条景点信息。

foriins:inf={}try:inf[level]=i.find(span,class_=level).text[0]exceptExceptionase:inf[level]=0try:inf[price]=i.find(span,class_=sight_item_price).find(em).textexceptExceptionase:inf[price]=try:inf[name]=i.find(a,class_=name).textexceptExceptionase:inf[name]=try:inf[num]=i.find(span,class_=hot_num).textexceptExceptionase:inf[num]=try:inf[add_pro]=i.find(span,class_=area).find(a).text.split(·)[0]inf[add_city]=i.find(span,class_=area).find(a).text.split(·)[1]exceptExceptionase:inf[add_pro]=i.find(span,class_=area).find(a).textinf[add_city]=i.find(span,class_=area).find(a).texttry:inf[hot]=i.find(span,class_=product_star_level).find(em).get(title).split(:)[1]exceptExceptionase:inf[hot]=try:inf[descri]=i.find(div,class_=introcolor).textexceptExceptionase:inf[descri]=

数据分析

5A级景区

上图为5A景区的销量排行,可以看出秦始皇兵马俑遥遥领先,是第二名长隆欢乐世界的5/3倍。让笔者没有想到的是欢乐谷游乐园等在前二十名中占了六个席位,所以对于那些想发展旅游业但是没有美丽风景或者历史古迹的城市而言,大力发展游乐园行业是一个不错的选择。广州长隆就是一个鲜活的例子。

江苏省是全国5A级景区最多的一个省,有41个之多;其次是浙江省和广东省有21个。总体而言,东部地区的5A景区数量是远高于西部的,虽然西部的美景非常多,但是整体经济不行,对景区的开发力度不够,拉了不少后退。

如果大家想去人少景美的地方,可以参考上图。比如武汉的东湖磨山、红旗渠、野三坡等等(其实笔者都没有听过。)虽然它们的销量低,但好歹也是AAAAA级风景区。

defhuati(name,num,k):kk=[]foriinrange(len(name)):ifnotnumpy.isnan(num[i]):q=[]q.append(name[i])q.append(num[i])kk.append(q)hh=sorted(kk,key=lambdai:i[1],reverse=True)page=Page()att,val=[],[]foriinhh[:20]:att.append(i[0])val.append(i[1])bar1=Bar(,k+A景区销量排行,title_pos=center,width=,height=)bar1.add(,att,val,is_visualmap=True,visual_text_color=#fff,mark_point=[average],mark_line=[average],is_more_utils=True,is_label_show=True,is_datazoom_show=True,xaxis_rotate=45)page.add_chart(bar1)att,val=[],[]foriinhh[-20:]:att.append(i[0])val.append(i[1])bar2=Bar(,k+A景区销量排行,title_pos=center,width=,height=)bar2.add(,att,val,is_visualmap=True,visual_text_color=#fff,mark_point=[average],mark_line=[average],is_more_utils=True,is_label_show=True,is_datazoom_show=True,xaxis_rotate=45)page.add_chart(bar2)page.render(k+A景区销量bar.html)defsum_pro(pro,k):#每个省有多少个景点p=[]c=[]foriinset(pro):q={}q[i]=pro.count(i)p.append(q)p.append(i)c.append(pro.count(i))map=Map(各省+k+A景点分布,width=,height=)map.add(,p,c,is_visualmap=True,visual_range=[min(c),max(c)],visual_text_color=#,is_map_symbol_show=True,is_label_show=True)map.render(各省+k+A景点分布.html)

4A景区

在4A景区里,成都熊猫基地的销量是最高的,大熊猫最为国宝,这吸引力真是杠杠的。和5A景区一样,欢乐谷游乐园等占了四成,我想这也是南京虽然是六朝古都,又是中华民国的首都,可是景区无论销量还是人气都不高的原因吧,希望在南京可以多造几个大型游乐园!

在上图中可以看到山东省是4A景区最多的省,有个之多。而浙江省、江苏省、广东省、河北省、四川省、安徽省的4A景区数量均超过了。4A景区最少的省是西藏,只有6个。

3A景区

3A景区销量最高的是竹林长寿山景区,但也只有,在4A景区的中上游。

山东省的3A景区数量全国第一,高达个,而河南省、安徽省、辽宁省、黑龙江省、新疆省3A景区均在个以上。

综合对比

从各等级景区人气值可以看出,人气值为1的5A景区占了将近三成,而4A和3A景区连一成都没有;相反,人气值为0的3A景区差不多有六成,看来这个3A景区不是一点点水呢?5A景区也并非每一个都称得上5A这个名号,不然也不会有近两成人气值为0。

defhottt(fivhot,fouhot,thrhot):fiv,fou,th=[],[],[]atts=[0,0.7,0.8,0.9,1]foriinzip(fivhot,fouhot,thrhot):fiv.append(round(i[0],1))fou.append(round(i[1],1))th.append(round(i[2],1))levels=[5A,4A,3A]data={}data[att]=attsdata[5A],data[4A],data[3A]=[],[],[]foriinrange(len(atts)):data[5A].append(round(fiv.count(float(atts[i]))/len(fiv)*,3))data[4A].append(round(fou.count(float(atts[i]))/len(fou)*,3))data[3A].append(round(th.count(float(atts[i]))/len(th)*,3))print(data)output_file(bars.html)#输出文件名x=[(att,level)forattinattsforlevelinlevels]counts=sum(zip(data[5A],data[4A],data[3A]),())source=ColumnDataSource(data=dict(x=x,counts=counts))p=figure(x_range=FactorRange(*x),plot_height=,title=各等级景区人气值占比,toolbar_location=None,tools=)p.vbar(x=x,top=counts,width=0.9,source=source)show(p)

从各级景点的箱型图可以看出,5A景区人气值是遥遥领先的,整体在0.7以上。4A景区人气均值中位数在0.7左右,不过高于0.7的景区实在太少了。3A景区就更不用说,整体人气值非常低。

从景区销量箱型图可以看到:5A景区的销量是远超过了4A和3A景区,5A景区的3/4分为点达到了,而4A景区的仅为82;而4A景区的箱型图和3A的非常类似;看来大家对4A景区和对3A景区兴趣都一致的不大。

defbox(q,w,e,l):a=go.Box(y=q,name=5A景区)b=go.Box(y=w,name=4A景区)c=go.Box(y=e,name=3A景区)g=go.Box(y=l,name=所有景区)data=[a,b,c,g]layout=go.Layout(legend=dict(font=dict(size=16)),orientation=)fig=go.Figure(data=data,layout=layout)plotly.offline.plot(data)

将所有景点的概述用R生成了一个词云图:位于,文化,休闲,旅游,体验,景区,公园,历史,娱乐等等这些词是不是很熟悉呢。看来商家对景区的概括都差不多。

对比完各级景点,下面来给各位看官排排雷。

上图是4A级景区销量排名的最后20位,全中国有个4A级景区,这20个还排在最后,在对比一下大家对4A级景区的人气评分,想想还是不要去了。

首先,如果说3A级景区不太推荐大家去游玩,因为人气值实在低的可怕;那上面列出的这20个景点那就是完全不建议游玩了。全国一共个AAA级景区,这20个排在最后,可想而知去了会多么震惊了。

高德地图可视化

高德地图的API真的非常好,它提供各种和地图有关的功能。其中有一项是WEB服务里的地理/逆地理编码。将去哪儿爬取到的景点地址数据通过地理编码转变为对应的经纬度。比如:北京市方恒国际中心A座将它经过地理编码后其经纬度为.,39.。它的URL:



转载请注明地址:http://www.jinsihouz.com/hzxpgd/11710.html