国家AAAAA级旅游景区数量统计

来源:互联网 发布:新网络三剑客 编辑:程序博客网 时间:2024/04/27 18:52

国家AAAAA级旅游景区数量统计


研究背景

作者热爱旅游,经常喜欢关注一些旅游方面的信息。近日发现百度百科中国家AAAAA级旅游景区词条中有这样一句话截止2016年10月,国家旅游局共确定了227家国家5A级旅游风景区

这里写图片描述

BUT,作者登陆了国家旅游局官方网站,手动数了一下AAAAA级旅游景区的数量只有218个,即便是加上摘牌的3家两个数也是对不上的。
想想自学python已经有一段时间了,那就让我来把这个问题捋捋清楚吧!

简单的爬虫

首先,从国家旅游局网站上爬取AAAAA级旅游景区名单,代码很简单,参考了很多网上的资料,爬取的数据保存到nm.txt中。

import urllib2from bs4 import BeautifulSoupheaders={'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}#名单共有15页,网址中page=后面的数字就是页码page_num=range(1,16)for i in page_num:    url='http://www.cnta.gov.cn/was5/web/search?page='+str(i)+'&channelid=242887'    req=urllib2.Request(url,headers=headers)    try:        post=urllib2.urlopen(req)    except urllib2.HTTPError,e:        print e.code        print e.reason    page=BeautifulSoup(post.read())    #观察网页的源码发现main_right_m1后面为景区名称,main_right_m2后面为景区的所属地区和级别,main_right_m3为评定的年份    item_list=page.find_all('div',{'class':['main1_right_m1','main1_right_m2','main1_right_m3']})    n=0    fnm=open('nm.txt','a')    for item in item_list:        text=item.get_text()        text=text.encode('utf-8')        if n==3:            text=text+'\n'            n=0        else:            text=text+','            n=n+1        fnm.write(str(text))    fnm.close()

名单比较

由于国家旅游局网站上给出的名单很规整,所以这里只做简单的整理,代码如下:

# -*- conding:utf-8 -*-import pandas as pdimport renames=['name','location','Arank','year']dict_province={'江苏':'Jiangsu','浙江':'Zhejiang','河南':'Henan','河北':'Hebei','广东':'Guangdong','广西':'Guangxi','山东':'Shandong','山西':'Shanxi','陕西':'Shan3xi','宁夏':'Ningxia','内蒙古':'Neimenggu','辽宁':'Liaoning','吉林':'Jilin','黑龙江':'Heilongjiang','北京':'Beijing','上海':'Shanghai','天津':'Tianjin','重庆':'Chongqing','江西':'Jiangxi','安徽':'Anhui','贵州':'Guizhou','云南':'Yunnan','四川':'Sichuan','西藏':'Tibet','新疆':'Xinjiang','甘肃':'Gansu','青海':'Qinghai','福建':'Fujian','湖南':'Hunan','湖北':'Hubei','海南':'Hainan'}dict_district={'northeast':['Heilongjiang','Jilin','Liaoning'],           'northchina':['Beijing','Tianjin','Hebei','Shanxi','Neimenggu'],           'centralchina':['Henan','Hubei','Hunan'],           'eastchina':['Shandong','Jiangsu','Anhui','Shanghai','Zhejiang','Jiangxi','Fujian','Taiwan'],           'southchina':['Guangdong','Guangxi','Hainan','Hongkong','Macao'],           'northwest':['Shan3xi','Gansu','Ningxia','Qinghai','Xinjiang'],           'southwest':['Sichuan','Guizhou','Yunnan','Chongqing','Tibet']}scenic_area=pd.read_csv('nm.txt',names=names)#将所在地区改用拼音表示scenic_area['location'].replace(dict_province,inplace=True)#增加一列,代表所属的地区dict_district={v:k for k,v in dict_district.items() for v in dict_district[k]}scenic_area['district']=scenic_area['location'].map(dict_district)#利用正则表达式找出被严重警告的景区nmstr=r'【严重警告】.*'regex=re.compile(nmstr)warning=scenic_area['name'].map(regex.findall)warning[warning.map(len)>0]

百度词条显示2016年10月13日,国家旅游局规划财务司网上公示新一批国家级5A级景区,共有9家景区入选,网上公示时间2016年10月13日至2016年10月19日。

省、市、自治区 景区名称 内蒙古 呼伦贝尔市满洲里市中俄边境旅游区 安徽 六安市舒城县万佛湖风景区 河南 安阳市林州市红旗渠·太行大峡谷旅游景区 广东 中山市孙中山故里旅游区 海南 三亚市海棠区蜈支洲岛旅游区 四川 南充市仪陇县朱德故里景区 陕西 宝鸡市太白县太白山旅游景区 新疆 巴音郭楞蒙古自治州和静县巴音布鲁克景区 新疆 伊梨哈萨克自治州特克斯县喀拉峻景区

查询了一下爬取的数据中年份为2016的景区名称,果然少了这9个景区,看来国家旅游局网站只更新到2016年8月4日,百度百科词条已经维护到2016年10月13日公布的名单,百度的班不是白加的。

另外三家被严重警告的景区分别为

省、市、自治区 景区名称 福建 福建省土楼(永定·南靖)旅游 安徽 安徽省安庆市天柱山风景区 福建 南平市武夷山风景名胜区

数据地图

这里写图片描述

各省份5A级旅游景区数量及各年份增加情况

大陆个地区5A级景区数量情况

参考用Excel做出强大漂亮的数据地图的方法,用excel绘制了数据地图,用颜色标识各省、市、自治区的5A景区数量情况,从绿色到红色数量一次增多。作者对渐变色了解的极少,所以颜色是用色阶自动生成的,生成好色阶后,先拷贝到word中,再拷回excel中,刚刚生成的色阶就成了单元格的填充色。作者尝试修改宏代码来实现用条件格式生成的色阶实现地图填充,搞了半天都没成功,请大神们不吝赐教。
江苏省在2016年新增了2个5A级景区后,5A级景区数量达到了22个,遥遥领先第二位浙江省。在直辖市中,重庆和北京排名第一,都有7个5A级景区。

第一次作业到此结束,坚持不懈,勤能补拙

1 0
原创粉丝点击