大家好,地方旅游网站源码分享相信很多的网友都不是很明白,包括旅游类网站模板也是一样,不过没有关系,接下来就来为大家分享关于地方旅游网站源码分享和旅游类网站模板的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
前言:本文建议有一定Python基础和前端(html,js)基础的盆友阅读。
金秋九月,丹桂飘香,在这秋高气爽,阳光灿烂的收获季节里,我们送走了一个个暑假余额耗尽哭着走向校园的孩籽们,又即将迎来一年一度伟大祖国母亲的生日趴体(无心上班,迫不及待想为祖国母亲庆生!)。
有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源码和PDF】,感兴趣者可以关注小编后私信学习资料(是关注后私信哦)反正闲着也是闲着呢,不如学点东西啦
那么问题来了,去哪儿玩呢?百度输了个“国庆”,出来的第一条居然是“去哪里旅游人少”……emmmmmmm,因缺思厅。
于是我萌生了通过旅游网站的景点销量来判断近期各景点流量情况的想法(这个想法很危险啊)。
所以这次的目标呢,是爬去哪儿网景点页面,并得到景点的信息,大家可以先思考下大概需要几步。
1.百度的地图API和echarts
这次正好爬的是数据,我决定用数据的好基友——图表来输出我爬取的数据,也就是说我要用爬取的景点销量以及景点的具体位置来生成一些可视化数据。
安利一下百度的地图API和echarts,前者是专门提供地图API的工具,听说好多APP都在用它,后者是数据处理居家旅行的好伙伴,用了之后,它好,我也好(隐约觉得哪里不对)。
API是什么,API是应用程序的编程接口,就好像插头与插座一样,我们的程序需要电(这是什么程序?),插座中提供了电,我们只需要在程序中写一个与插座匹配的插头接口,就可以使用电来做我们想做的事情,而不需要知道电是如何产生的。
再详细一点讲呢,就好比米酱的小说写完啦!但她还想把小说出成书,可是怎么出书捏?米酱不会呀,这时候米酱发现某出版社提供了出版服务,出版社表示只需要提供小说的正文、以及一个设计的封面就可以啦,于是米酱将小说保存成了word格式,又画了个封面jpg图,发给了出版社,没过多久米酱就拿到了一本装订好的书啦(此段纯属虚构,专业出版人士尽管打我,我不会承认的)。
在米酱出书的过程中,米酱并不需要知道出版社是怎么印刷这个书的,也不需要知道是怎么装订这个书的,米酱只需要提供出版社所要求的东西即可。
2.确定输出文件
有人可能说,我已经懂了api是啥意思了,可是咋个用呢。关于这一点,米酱很负责任的告诉你:我也不会。
但是!
百度地图提供了很多API使用示例,http://developer.baidu.com/map/jsdemo.htm获取必要信息\nsight_name=inf.xpath(‘./div/div/h3/a/text()’)[0]\nsight_level=inf.xpath(‘.//span[@class=”level”]/text()’)\niflen(sight_level):\nsight_level=sight_level[0].replace(‘景区’,”)\nelse:\nsight_level=0\nsight_area=inf.xpath(‘.//span[@class=”area”]/a/text()’)[0]\nsight_hot=inf.xpath(‘.//span[@class=”product_star_level”]//span/text()’)[0].replace(‘热度’,”)\nsight_add=inf.xpath(‘.//p[@class=”addresscolor999″]/span/text()’)[0]\nsight_add=re.sub(‘地址:|(.*?)|\\(.*?\\)|,.*?$|\\/.*?$’,”,str(sight_add))\nsight_slogen=inf.xpath(‘.//div[@class=”introcolor999″]/text()’)[0]\nsight_price=inf.xpath(‘.//span[@class=”sight_item_price”]/em/text()’)\niflen(sight_price):\nsight_price=sight_price[0]\nelse:\ni=0\nbreak\nsight_soldnum=inf.xpath(‘.//span[@class=”hot_num”]/text()’)[0]\nsight_url=inf.xpath(‘.//h3/a[@class=”name”]/@href’)[0]\nsightlist.append([sight_name,sight_level,sight_area,float(sight_price),int(sight_soldnum),float(sight_hot),sight_add.replace(‘地址:’,”),sight_slogen,sight_url])\ntime.sleep(3)\nreturnsightlist,place\n
1.这里把每个景点的所有信息都爬下来了(其实是为了练习使用xpath……)。
2.使用了while循环,for循环的break的方式是发现无销量时给i值赋零,这样while循环也会同时结束。
3.地址的匹配使用re.sub()函数去除了n多复杂信息,这点后面解释。
4.输出本地文本
为了防止代码运行错误,为了维护代码运行的和平,将输出的信息列表存入到excel文件中了,方便日后查阅,很简单的代码,需要了解pandas的用法。
deflistToExcel(list,name):\ndf=pd.DataFrame(list,columns=[‘景点名称’,’级别’,’所在区域’,’起步价’,’销售量’,’热度’,’地址’,’标语’,’详情网址’])\ndf.to_excel(name+’景点信息.xlsx’)\n
5.百度经纬度api
肥肠悲伤的,(?﹏?)我没找到去哪儿景点的经纬度,以为这次学(zhuang)习(bi)计划要就此流产了。(如果有人知道景点经纬度在哪里请告诉我)
但是,enhahhahahaha,我怎么会放弃呢,我又找到了百度经纬度api,网址:http://api.map.baidu.com/geocoder/v2/?address=地址&output=json&ak=百度密钥,修改网址里的“地址”和“百度密钥”,在浏览器打开,就可以看到经纬度的json信息。
百度地图api示例代码中各位置修改部分\n<head>\n<scriptsrc=”http://libs.baidu.com/jquery/2.0.0/jquery.js”></script>\n</head>\n<scripttype=”text/javascript”>\n$.getJSON(“points.json”,function(data){\nvarpoints=data;\nscript中原有函数;\n});\n</script>\n
这里使用了jQuery之后,即使网页调试成功了,在本地打开也无法显示网页了,在chrome中右键检查,发现报错提示是需要在服务器上显示,可是,服务器是什么呢?
百度了一下,可以在本地创建一个服务器,在终端进入到html文件所在文件夹,输入python-mSimpleHTTPServer,再在浏览器中打开http://127.0.0.1:8000/,记得要将html文件名设置成index.html哦~
7.后记
因为注册但没有认证开发者账号,所以每天只能获取6K个经纬度api(这是一个很好的偷懒理由),所以我选择了热门景点中前400页(每页15个)的景点,结果可想而知,(?﹏?)为了调试因为数据增多出现的额外bug,最终的获取的景点数据大概在4k5条左右(爬取时间为2017年09月10日,爬取关键词:热门景点,仅代表当时销量)。
这些地图上很火爆的区域,我想在国庆大概是这样的
这样的
还有这样的
将地图上热门景点的销量top20提取出来,大多数都是耳熟能详的地点,故宫排在了第一位,而四川则占据了top5中的三位,而排在top20中也四川省就占了6位,如果不是因为地震,我想还会有更多的火爆的景点进入排行榜的~这样看来如果你这次国庆打算去四川的话,可以脑补到的场景就是:人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人……
于是我又做了一个各城市包含热门景点数目的排行,没想到在4千多个热门景点中,数目最多的竟是我大浙江,是第二个城市的1.5倍,而北京作为首都也……可以说是景点数/总面积的第一位了。
这些城市有辣么多热门景点,都是些什么级别的景点呢?由下图看来,各城市的各级别景点基本与城市总热门景点呈正相关,而且主要由4A景区贡献而来。
既然去哪些地方人多,去哪里景多都已经知道了,那再看看去哪些地方烧得钱最多吧?下图是由各城市景点销售起步价的最大值-最小值扇形组成的圆,其中湖北以单景点销售起步价600占据首位,但也可以看到,湖北的景点销售均价并不高(在红色扇形中的藏蓝色线条)。而如果国庆去香港玩,请做好钱包减肥的心理和生理准备(??ω??)?。
好啦分析完啦,ヾ(*ΦωΦ)ツ大家可要好好玩呀。
有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源码和PDF】,感兴趣者可以关注小编后私信学习资料(是关注后私信哦)反正闲着也是闲着呢,不如学点东西啦
文章到此结束,如果本次分享的地方旅游网站源码分享和旅游类网站模板的问题解决了您的问题,那么我们由衷的感到高兴!
