Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国庆过完了, 想要知道哪些景点爆满, Python告诉你!

国庆过完了, 想要知道哪些景点爆满, Python告诉你!

原创
作者头像
猫咪编程
修改于 2018-10-08 01:53:48
修改于 2018-10-08 01:53:48
5380
举报

概述

前言

思考

统计结果

爬虫技术分析

爬虫代码实现

爬虫分析实现

后记

前言

举国欢庆的国庆节马上就要到来了,你想好去哪里看人山人海了吗?还是窝在家里充电学习呢?说起国庆,塞车与爆满这两个词必不可少,去年国庆我在想要是我能提前知道哪些景点爆满就好了,就不用去凑热闹了。于是我开始折腾,想用 python 抓取有关出行方面的数据,便有了这篇文章。如果我的文章对你有帮助,欢迎关注、点赞、转发,这样我会更有动力做原创分享。

弘扬一下社会主义核心价值观

思考

(此段可跳过)要抓取出行方面的数据还不简单,直接去看看携程旅游、马蜂窝这类网站看看有没有数据抓取。但是实际上这些网站并没有比较好的格式化的数据供我们抓取,或许是我没找到吧。我在想,有没有什么折中的办法。然而,就这样半天过去了,突然想到,要出行肯定会查找相关的出行攻略吧,那么关键词就是一个突破口,可以查询百度指数来看看哪些景点被查询的次数最多,那么就可以大概知道哪些景点会爆满了。

统计结果

此次的统计结果只是从侧面反映景点爆满的问题,未必是完全准确的,仅供参考。此次统计的景点共有 100 个:

桂林、三亚、泰山的搜索量都是杠杠的,这第一梯队的地方能不去就别去了,去了也是人山人海的,爆满是无疑的了。

捂脸.jpg

top0-10

第二梯队的搜索量也不差,日均搜索量还是上万的,谨慎行动。

top10-20

第三梯队下来就可以考虑考虑,为了避免不必要的塞车与等待,建议大家还是呆在家里吧!!!

top20-30

第四梯队应该没太大的问题,建议出去溜达溜达。

top30-40

都到第五梯队了,就可以放心地玩耍了。经历了那么多的烦心事,是该好好放飞一下自己了。

top40-50

爬虫技术分析

请求库:selenium

HTML 解析:使用正则匹配

数据可视化:pyecharts

数据库MongoDB

数据库连接:pymongo

爬虫分析实现

此次文章能够实现参考效果,完全是因为抖机灵。首先是选取爬虫来源,携程与马蜂窝没有结构化的数据,我们就换一种思路。首先是想到百度指数,如图:

百度指数

但是,分析源代码之后,你就会发现坑爹之处了,它的数据都是以图片展示的,你不能直接获取到源码,考虑到国庆马上就要到来,我换了一个指数平台,转战搜狗指数,这个平台可以直接获取到源数据,关键是,还有微信热度可以爬取。当然,你执意要使用百度指数,这里也是有方法的,抓取到数据之后,使用图像识别来识别文中的数据,提供一篇有思路的文章 [爬虫实战——四大指数之百度指数(三)。

关于数据清洗方面,这里筛选了数据量过小,和数据量异常大的景点,详情在源码中查看。

搜狗指数

# 这是数据展示的代码片段def show_data(self):forindexin range(5):        queryArgs = {"day_avg_pv": {"$lt":100000}}        rets = self.zfdb.national_month_index.find(queryArgs).sort("day_avg_pv", pymongo.DESCENDING).limit(10).skip(index*10)        atts = []values= []        file_name ="top"+ str(index*10) +"-"+ str((index+1) *10) +".html"forret in rets:print(ret)            atts.append(ret["address"])            values.append(ret["day_avg_pv"])        self.show_line("各景点 30 天内平均搜索量", atts,values)        os.rename("render.html", file_name)

爬虫代码实现

由于篇幅原因,这就只展示主要代码,详情请查看源码,点击阅读原文获取源码。

# 这是数据爬取的代码片段defget_index_data(self):try:forurlinself.get_url():            print("当前地址为:"+ url)            self.browser.get(url)            self.browser.implicitly_wait(10)            ret = re.findall(r'root.SG.data = (.*)}]};', self.browser.page_source)            totalJson = json.loads(ret[0] +"}]}")            topPvDataList = totalJson["topPvDataList"]            infoList = totalJson["infoList"]            pvList = totalJson["pvList"]forindex, infoinenumerate(infoList):forpvDateinpvList[index]:                    print("index => "+str(index)+"地址 => "+info["kwdName"] +"日期 => "+ str(pvDate["date"]) +" => "+ str(pvDate["pv"]) +" => "+ str(                        info["avgWapPv"]) +" => "+ str(info["kwdSumPv"]["sumPv"]) +" => ")                    self.zfdb.national_day_index.insert({"address": info["kwdName"],# 地名"date": pvDate["date"],# 日期"day_pv": pvDate["pv"],# 日访问量})                self.zfdb.national_month_index.insert({"address": info["kwdName"],# 地名"day_avg_pv": info["avgWapPv"],# 平均访问量"sum_pv": info["kwdSumPv"]["sumPv"],# 总访问量})except:        print("exception")

后记

整篇爬虫文章分析到这里就结束,不过还是对百度指数很有执念,想找个时间写一篇相关的文章才行,不搞定它感觉心里有块疙瘩,或许这就是程序员最后的倔强,最后祝大家国庆假期愉快,不用写代码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python代码告诉你国庆哪些景点爆满
举国欢庆的国庆节马上就要到来了,你想好去哪里看人山人海了吗?还是窝在家里充电学习呢?说起国庆,塞车与爆满这两个词必不可少,去年国庆我在想要是我能提前知道哪些景点爆满就好了,就不用去凑热闹了。于是我开始折腾,想用 python 抓取有关出行方面的数据,便有了这篇文章。
Rookie
2019/08/08
7040
一百行python代码告诉你国庆哪些景点爆满
举国欢庆的国庆节马上就要到来了,你想好去哪里看人山人海了吗?还是窝在家里充电学习呢?说起国庆,塞车与爆满这两个词必不可少,去年国庆我在想要是我能提前知道哪些景点爆满就好了,就不用去凑热闹了。于是我开始折腾,想用 python 抓取有关出行方面的数据,便有了这篇文章。如果我的文章对你有帮助,欢迎关注、点赞、转发,这样我会更有动力做原创分享。
龙哥
2019/07/30
7520
一百行python代码告诉你国庆哪些景点爆满
用Python偷偷告诉你国庆8亿人都去哪儿浪?
左思右想,最后落脚到国庆长假的旅游上,能否用网络爬虫看看,十一长假哪些城市最堵?哪些景区最热门?
编程文青李狗蛋
2019/10/10
8460
用Python偷偷告诉你国庆8亿人都去哪儿浪?
我用 Python 爬取了全国 4500 个热门景点,告诉你国庆哪里去不得?
金秋九月,丹桂飘香,在这秋高气爽,阳光灿烂的收获季节里,我们送走了一个个暑假余额耗尽哭着走向校园的孩子们,又即将迎来一年一度伟大祖国母亲的生日趴体(无心上班,迫不及待想为祖国母亲庆生)。 那么问题来了,去哪儿玩呢?百度输了个“国庆”,出来的第一条居然是“去哪里旅游人少”……emmmmmmm,因缺思厅。 于是我萌生了通过旅游网站的景点销量来判断近期各景点流量情况的想法(这个想法很危险啊)。 所以这次的目标呢,是爬去哪儿网景点页面,并得到景点的信息,大家可以先思考下大概需要几步。
CDA数据分析师
2018/02/05
1.8K0
我用 Python 爬取了全国 4500 个热门景点,告诉你国庆哪里去不得?
用Python分析国庆旅游景点,告诉你哪里人少便宜还好玩!
2019年国庆马上就要到来, 今年来点新花样吧, 玩肯定是要去玩的, 不然怎么给祖国庆生? 那去哪里玩?人少档次还高呢? 那就用数据分析下, 看看哪些地方值得去! 1. 目标 使用Python分析出国庆哪些旅游景点:好玩、便宜、人还少的地方,不然拍照都要抢着拍! 2. 获取数据 既然做数据分析肯定要先搞到数据,最开始笔者在一些官方网站查找旅游信息,毕竟官方的数据可信度高点, 但我一无所获,有点失望! 然后寻找其他替代方案:爬取出行网站的旅游景点售票数据,这样也可以反映出旅游景点的热度! 笔者首先想到
腾讯大讲堂
2019/10/08
3.1K0
用Python分析国庆旅游景点,告诉你哪里人少便宜还好玩!
Python数据抓取与可视化实战——网易云课堂人工智能与大数据板块课程实战
本篇内容数据抓取对象为网易云课堂人工智能与大数据板块课程信息,使用的工具是urllib+postman,因为直接构建的POST抓取的josn数据包,所以数据抓取的代码非常简单,没有繁杂的xpath或者css表达式。可视化部分使用matplotlib,感谢刘顺祥大神的matplotlib教程系列,让我没怎么费力气就直接复用了大量代码! https://mp.weixin.qq.com/s/E_r5ZsV9HOyuhnFwqsRXeA 以下是数据抓取部分代码: import json,time from url
数据小磨坊
2018/04/11
1.4K0
Python数据抓取与可视化实战——网易云课堂人工智能与大数据板块课程实战
高考旅游火热升温|数据显示,他们都想去这里
紧张、激烈的高考大战已经告一段落了,经历了十年寒窗苦读的高三学子们,一边焦急等待成绩出来的同时,一边也会不由自主期待随之而来的快乐假期吧?
数据STUDIO
2021/06/24
2490
软件著作权说明书模板_软件设计方案怎么写
项目名称:基于互联网大数据的事件智能抓取和画像系统 项目成员:禹精华、刘可可、刘贤辉
全栈程序员站长
2022/11/09
2.3K0
软件著作权说明书模板_软件设计方案怎么写
基于街景图像的武汉城市绿化空间分析
作者:郭子豪 中国地质大学(武汉)研究生 HPSCIL Urban Comp 城市之光团队成员
陈南GISer
2024/05/20
5760
基于街景图像的武汉城市绿化空间分析
Github上有趣的100个python项目
Github上面有很多有趣的python项目,包括软件、库、教程、资源等。这次收集了其中比较受欢迎的100个,供大家参考。
派大星的数据屋
2022/04/03
2.7K0
Github上有趣的100个python项目
Python 数据分析(PYDA)第三版(五)
对数据集进行分类并对每个组应用函数,无论是聚合还是转换,都可能是数据分析工作流程的关键组成部分。加载、合并和准备数据集后,您可能需要计算组统计信息或可能需要为报告或可视化目的计算数据透视表。pandas 提供了一个多功能的groupby接口,使您能够以自然的方式切片、切块和总结数据集。
ApacheCN_飞龙
2024/05/24
3460
Python 数据分析(PYDA)第三版(五)
Python面试题之Python面试题汇总
(1)与java相比:在很多方面,Python比Java要简单,比如java中所有变量必须声明才能使用,而Python不需要声明,用少量的代码构建出很多功能;(高效的高级数据结构)
Jetpropelledsnake21
2018/08/01
11.6K0
Python面试题之Python面试题汇总
用Python分析完6000 款 App,得出这些结论
摘要: 如今移动互联网越来越发达,各式各样的 App 层出不穷,也就产生了优劣之分,相比于普通 App,我们肯定愿意去使用那些良心佳软,但去发现这些 App 并不太容易,本文使用 Scrapy 框架爬取了著名应用下载市场「酷安网」上的 6000 余款 App,通过分析,发现了各个类别领域下的佼佼者,这些 App 堪称真正的良心之作,使用它们将会给你带来全新的手机使用体验。
Python中文社区
2018/12/28
2K0
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
9.9K0
100天学会python
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。
她的店里只卖樱花
2023/01/06
3.4K0
100天学会python
Python 之Web编程
  - 由一对尖括号包裹的单词构成,如<html> 所有标签中的单词不可能从数据开头
py3study
2020/02/10
2.5K0
利用Python进行数据分析笔记
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。我的目标是介绍Python编程和用于数据处理的库和工具环境,掌握这些,可以让你成为一个数据分析专家。虽然本书的标题是“数据分析”,重点却是Python编程、库,以及用于数据分析的工具。这就是数据分析要用到的Python编程。
CtrlX
2023/03/21
5.3K0
利用Python进行数据分析笔记
16 . PythonWeb框架之Django
项目运行起来,访问IP:PORT/admin即可访问登录页面,但是需要先创建一个超级用户
iginkgo18
2020/09/27
2.6K0
16 . PythonWeb框架之Django
【深度学习】自然语言处理
NLP(Nature Language Processing,自然语言处理)是计算机学科及人工智能领域一个重要的子学科,它主要研究计算机如何处理、理解及应用人类语言。所谓自然语言,指人说的话、人写的文章,是人类在长期进化过程中形成的一套复杂的符号系统(类似于C/Java等计算机语言则称为人造语言)。以下是关于自然语言处理常见的定义:
杨丝儿
2022/03/20
7900
【深度学习】自然语言处理
一种绝对提高开发水平的方法
如果做了多年开发的你发现自己的水平一直上不去,你可能要提高自己的英文水平了,英语就是你技术的瓶颈,对有些人可能是硬伤。
张果
2018/07/31
9.2K2
一种绝对提高开发水平的方法
相关推荐
Python代码告诉你国庆哪些景点爆满
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档