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

概述

前言

思考

统计结果

爬虫技术分析

爬虫代码实现

爬虫分析实现

后记

前言

举国欢庆的国庆节马上就要到来了,你想好去哪里看人山人海了吗?还是窝在家里充电学习呢?说起国庆,塞车与爆满这两个词必不可少,去年国庆我在想要是我能提前知道哪些景点爆满就好了,就不用去凑热闹了。于是我开始折腾,想用 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")

后记

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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

技术揭秘12306改造(二):探讨12306两地三中心混合云架构

在年前的「技术揭秘12306改造」专题中,一位对12306改造非常关注的技术架构师,他从技术的角度,用科学论证的方式说明12306是如何实现高流量高并发的关键技...

4379
来自专栏最新活动

AMD 1G内存1M带宽50G盘 服务器拼团活动

链接: https://cloud.tencent.com/act/group/amd/detail?group=54487 买3个月送1个月,最多买一年送4...

1520
来自专栏最新活动

AMD 1G内存1M带宽50G盘 服务器拼团活动

链接: https://cloud.tencent.com/act/group/amd/detail?group=54487

1140
来自专栏腾讯技术工程官方号的专栏

2017年数据库技术盘点

作者介绍: 那海蓝蓝,腾讯金融云数据库技术专家,熟悉PostgreSQL、MySQL、Informix等数据库内核技术,著有《数据库查询优化器的艺术》、《数据库...

3.4K48
来自专栏数据和云

Oracle 18c体系架构图创作之路 - 设计者说(精品海报大放送)

自2012年的Oracle 11g体系架构图开始,已经连续发布了四个版本。而我很荣幸,作为12.2版本和18c版本的设计师,今天跟大家分享一下我个人在设计和绘制...

1324
来自专栏飞总聊IT

上周上市的大数据公司MongoDB的前生今世

声明:本文仅代表个人观点,和本人公司无关。 1 本文由本人在极客时间的专栏系列文章(4篇)总结而成。感谢极客邦允许我发表在公众号上。文章写得不够详细,分析也不够...

4837
来自专栏魏艾斯博客www.vpsss.net

腾讯云双11云安全会场 大禹BGP高防80元/月 主机安全加固30元/主机/月

腾讯云双11云安全会场来啦,包括SSL证书、主机安全加固、大禹BGP高防和Web漏洞扫描这几项安全措施。对于站长来说云主机安全也是很重要的事情,其重要程度不需要...

1422
来自专栏BestSDK

最令程序员恐惧的 10 件事,据说还没有全部“躺枪”的

软件开发是一个伟大的工作——和任何其他工作一样,它也有它的缺点。下面的10件事就是大多数程序猿关于编程所无法苟同的。 对于非软件开发人员来说,开发人员的工作看起...

3626
来自专栏云计算D1net

2014云数据安全技巧总回顾

云计算现正是当今IT界的宠儿,但安全方面的担忧仍是企业迟迟未肯采纳的原因。这些顶级安全技巧可以帮助IT团队快速热身,熟悉这项科技。 没人否认云计算的这些优点,灵...

27510
来自专栏区块链

如何保护自己的网络信息安全

近年来,在智能生活概念兴起的同时,关于网络信息安全的违法案例也是屡见不鲜。中南大的仙女特别多,那么保护自己的隐私安全无疑是重中之重。君不见:女生女生请学长帮忙修...

3358

扫码关注云+社区

领取腾讯云代金券