用Python偷偷告诉你国庆8亿人都去哪儿浪?
2019/9/29 11:27:08
 
 
祖国 70 周年的华诞一天天临近,各行各业都在为祖国母亲庆祝生日。作为一个 IT 人,也想贡献一份绵薄之力。
 
 
据文化和旅游部消息称,预计 2019 年国庆旅游人次有望达到近 8 亿。
 
 
#国庆假期或有近 8 亿人次出游#这个话题还冲上了微博热搜榜。
 
 
我仿佛已经看到了假期景区人山人海的画面!
 
 
 
左思右想,最后落脚到国庆长假的旅游上,能否用网络爬虫看看,十一长假哪些城市最堵?哪些景区最热门?
 
 
今天一起来看看,如何利用网络爬虫生成国庆期间的旅游热点图吧。
需求构思
制作一张旅游热点图,我们想要达到的效果是,在一张中国地图上面标注出旅游热点。
通过这张图可以知道哪些城市,或者哪些区域是十一期间的旅游热点。也就是说哪些地方在国庆期间去玩的人多。
 
 
构思图
首先,我们要找一个数据源能够获取全国旅游信息。这里有一个思路就是订票信息,哪些景点的订票比较多,那么这些景点所在的城市就越热门。类似的售票网站比较多,例如:携程,去哪儿,途牛旅游之类的。
然后,需要分析网站上面的票务数据,将我们感兴趣的旅游热点信息爬取下来。分析信息的重点是针对网页 HTML 信息的解析。
之后,将分析完毕的信息按照一定格式保存到本地,由于下载的信息可能和最终展示信息存在偏差,所以需要做一些数据清洗和数据聚合的操作。
最后,将整理好的信息输入到地图上显示出来,这也是最后展示的环节。这里可以选择对外展示的方式,例如:点图,线图,或者热力图。
网站分析
全局预览
找了一圈旅游网站以后,发现在“去哪儿”的门票页面中,有一个对旅游景点热度的展示信息。
网页会根据不同类型景点(自然风光,文化古迹等)进行查询,查询的结果会显示景点名称,景点热度和城市信息。
如果我们将这些景点对应的区域的热度进行汇总,就可以知道哪些区域对应的景点热度了。
先打开去哪儿旅游,搜索“热门景点”。下面列出了各个地方的热门旅游景点。
 
 
针对景点主题做了分类,在展示的列表中,有景点名称,景点级别,所在省市,以及热度。其中省市和热点是我们关心的数据。
URL 分析
 
 
URL 分析图
打开 Chrome 的开发者工具来看看 HTML 页面的结构。URL 的规律很容易能够看明白:  Keyword 就是“热门景点”,它是个常量,每次请求填写这个就行了。 Subject 是景点分类,例如:自然风光,游乐场,文化古迹等等。这个需要一一罗列出来,是在一个变量后面用数组存放。 Page 是页数,如果我们要爬取所有的信息,需要一页一页往下翻,所以这个数字会不断增长。页面滑动到最下方的时候,会看到 Next 按钮,可以通过这个按钮将所有页面都遍历到。 
 
 
URL 全景图
页面元素分析
通过 Chrome 开发者工具中的元素选择器,可以清楚地看到元素的 HTML 标签。
 
 
列表元素图
由于景点信息放在一个列表中,所以找到列表所在的元素,它放在 id 为“search-list”的 div 中。
也就是说在请求 URL 并获取 HTML 之后,我就需要找到“search-list”div 并且获取其中对应的项目信息。
获取了列表元素之后,再来看看每一项旅游纪录中的值如何获取。其内容放在”sight_item”的 div 中。
 
 
列表中每项的示意图
接下来分别将景点名称,景点级别,所在省市,热度,地址分别做分析。并且记录他们元素的值在后面解析 HTML 的时候可以用到。
元素的 HTML 标签获取类似上面两个元素。把上面这些元素的 ID 或者 Class 可以先记录下来,在后面解析 HTML 的时候会用到。
爬虫准备
构思和分析都完毕了,我们需要编写代码来实现想法。但是,在这之前我们需要把开发环境以及需要的工具准备好。

下一页
返回列表
返回首页
©2024 人工智能世界_专注人工智能领域,汇集人工智能技术资料 电脑版
Powered by iwms