爬取3万景点,分析十一哪里人从众从人?

Aidan075 等级 489 1 0

作为一名普通上班族,每个星期都在无休止的上班(没准还加班)之中度过。几个月前一直心心念念的可就是这十一的“小长假”(还调班两天)。

朱小五这次爬取分析携程国内150个热点城市的景点数据,简单的分析一下哪些景点比较受欢迎。用来预计分析一下这个十一哪里最可能人从众从人?

让我们来分析一下。

获取数据

首先,我们来明确一下我们想要爬取的数据是哪些,这里为了方便起见,我们先以目前国内最热门的城市——杭州为例:

爬取3万景点,分析十一哪里人从众从人?

图中的景点名称,地址,评分,景区质量等级、点评数量就是我们本次要获取的数据。其中点评数量正是本次作为判断该景点是否人数会多的重要依据。

翻页即可发现页码变化的规律

爬取3万景点,分析十一哪里人从众从人?

这次采用requests+美丽的汤(BeautifulSoup)来爬取。

`def get_list(urls,city):` `data = []  
 for i in range(1,3):  
 #爬取n页  
 url = 'https://you.ctrip.com/sight/'+str(urls)+'/s0-p'+str(i)+'.html#sightname'  
 results = {}  
 doc = requests.get(url, headers=headers)  
 while (doc is None or doc == {'code': -460, 'msg': 'Cheating'}):  
 print('重新获取!')  
 time.sleep(random.random())  
 doc = restaurant(url)  

 soup = BeautifulSoup(doc.text, features='lxml')  

 list_wide_mod2 = soup.find_all('div', class_='list_wide_mod2')[0]  
 for each1, each2 in zip(list_wide_mod2.find_all('dl'), list_wide_mod2.find_all('ul', class_='r_comment')):  
 name = each1.dt.a.text  
 addr = each1.find_all('dd')[0].text.strip()  
 level = each1.find_all('dd')[1].text.strip().split('|')[0].strip()  
 if '携程' in level:  
 level = ''  
 try:  
 price = each1.find_all('span', class_='price')[0].text.strip().replace('¥', '')  
 except:  
 price = '0'  
 score = each2.find_all('a', class_='score')[0].text.strip().replace('\xa0分', '')  
 comments = each2.find_all('a', class_='recomment')[0].text.strip()[1: -3].replace('条', '')  
 results = [city, name, addr, level, price, score, comments]  
 data.append(results)  

 final_result = pd.DataFrame(data)  
 final_result.columns=['city', 'name', 'addr', 'level', 'price', 'score', 'comments']  
 final_result.to_csv("%s景点数据.csv"%city,encoding="utf_8",index = False)  
 return final_result`

依次爬取150个热门城市

汇总后就获得了3万余条景点数据。

爬取3万景点,分析十一哪里人从众从人?

数据分析

清洗填充一下。

def data_cleaning(data):  
    cols = data.columns  
    for col in cols:  
        if data[col].dtype ==  'object':  
            data[col].fillna('缺失数据', inplace = True)  
        else:  
            data[col].fillna(0, inplace = True)  
    return(data)

按照评论数量排序,筛选前20的景点。

#排序TOP20  
data['comments'] = data['comments'].astype('int')  
df = data.sort_values(by="comments",ascending=False)  
df.head(20)

爬取3万景点,分析十一哪里人从众从人?

以上这些景点城市是之前的热门,也是仍旧是这次十一最可能人挤人的地方,请注意。

详情数据分析报告请点击:

《国庆出去旅个游要过的关,比消消乐还多

数据可视化

首先我们将上面的Top20做个词云,更加直观地展示。

爬取3万景点,分析十一哪里人从众从人?

消费价格也是衡量景区的一个方面,所以打算区分一下景区的消费价格。

python中对列表以区间进行统计,可以使用下面这个方法:

from itertools import groupby  

lst = [1, 1, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 7, 7, 8, 9, 9, 9, 10, 99, 99, 99, 100, 101]  
dic = {}  

for k, g in groupby(lst, key=lambda x: (x-1)//10):  
    dic['{}-{}'.format(k*10+1, (k+1)*10)] = len(list(g))  

print(dic)

爬取3万景点,分析十一哪里人从众从人?

根据得到的结果,我们可以绘制热门旅游景区消费价格区间分布饼图。

from matplotlib import pyplot as plt   

#调节图形大小,宽,高  
plt.figure(figsize=(5,8))  

#定义饼状图的标签,标签是列表  
labels = ['0-50元 ', '50-100元 ', '100-150元 ', '150-200元 ', '200及以上 ']  
#每个标签占多大  
sizes = [33660, 1542, 539, 289, 276]  
colors = ['red', 'orange', 'green', 'blue', 'gray', 'goldenrod']  

explode = (0, 0, 0, 0, 0.1)  

patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,  
                                labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,  
                                startangle = 90,pctdistance = 0.6)  

plt.title(u'热门旅游景区消费价格区间分布', fontsize=20)  

for t in l_text:  
    t.set_size=(30)  
for t in p_text:  
    t.set_size=(50)  
# 设置x,y轴刻度一致,这样饼图才能是圆的  
plt.axis('equal')  
plt.legend()  
plt.show()

爬取3万景点,分析十一哪里人从众从人?

其实国内大部分的景点门票费用并不贵,我们旅途中花销最大的是车票+酒店。

国庆出去玩一趟,实在太难了,每一个国庆去热门景区洗礼过的朋友,都是抱着关关难过关关过的悲壮心态,努力留下几张美好的照片,多吃几口当地的美食,以安慰自己,这一趟,值得。

无论你选择家里蹲七天享受难得的闲暇,还是出去走走见识更大的世界,都祝你国庆七天,跟随本心,快快乐乐~


转载请尽量带上二维码或者结尾注明来源,谢谢了。

爬取3万景点,分析十一哪里人从众从人?


爬取3万景点,分析十一哪里人从众从人?

本文转转自微信公众号凹凸数据原创https://mp.weixin.qq.com/s/IVSyG-3Mc2AVq3i8vXQYAA,可扫描二维码进行关注: 爬取3万景点,分析十一哪里人从众从人? 如有侵权,请联系删除。

收藏
评论区

相关推荐

一个爬虫的故事:这是人干的事儿?
本文转载自 轩辕之风的文章,链接 https://mp.weixin.qq.com/s/YygbUWpa2mbPZPuPNhdt2w 爬虫原理 我是一个爬虫,每天穿行于互联网之上,爬取我需要的一切。 image.png(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/656d
爬取3万景点,分析十一哪里人从众从人?
作为一名普通上班族,每个星期都在无休止的上班(没准还加班)之中度过。几个月前一直心心念念的可就是这十一的“小长假”(还调班两天)。 朱小五这次爬取分析携程国内150个热点城市的景点数据,简单的分析一下哪些景点比较受欢迎。用来预计分析一下这个十一哪里最可能人从众从人? 让我们来分析一下。 获取数据 首先,我们来明确一
被“词云”包围的冰冰会更好看吗?安排
(https://imghelloworld.osscnbeijing.aliyuncs.com/b299933deefc692934e8cc6141ab3894.png) 大家好,我是小五🐶 昨天「凹凸数据」发了一篇张同学投稿的文章《用Python爬取王冰冰vlog弹幕并制作词云(https://mp.weixin.qq.com/
商业数据分析从入门到入职(9)Python网络数据获取
@toc 前言本文主要讲Python最常见的应用之一——网络数据获取,即爬虫:先介绍了网页和网络的基础知识,为从网页中获取数据打好基础;接下来以两个案例介绍从网络中获取数据和处理数据的不同方式,以进一步认识Python爬虫和数据处理。 一、网络和网页基础知识 1.数据来源数据源有很多,可以从数据库中获取,可以从文件中获取,也可以从
Python网络爬虫与信息提取
title: Python网络爬虫与信息提取date: 20201210 01:00:23tags: Pythoncategories: 学习笔记 写在前面 不知道写啥其实说实话[TOC] 网络爬虫之规则 安装requests库cmd 命令行打开输入pip3 install requests,等待即可简单测试,爬一下bkjwpythonimport requ
《Python3网络爬虫开发实战》
提取码:1028内容简介 · · · · · ·本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib、requests、正则表达式、Beautiful Soup、XPath、pyquery、数据存储、Ajax数据爬取等内容,接着通过多个案例介绍了不同场景下如何实现数据爬取,后介绍了pyspider框架、S
爬取3万景点,分析十一哪里人从众从人?
作为一名普通上班族,每个星期都在无休止的上班(没准还加班)之中度过。几个月前一直心心念念的可就是这十一的“小长假”(还调班两天)。 朱小五这次爬取分析携程国内150个热点城市的景点数据,简单的分析一下哪些景点比较受欢迎。用来预计分析一下这个十一哪里最可能人从众从人? 让我们来分析一下。 获取数据 首先,我们来明确一下我们想要爬取的数据是哪些,这里
创建免费ip代理池
     反爬技术越来越成熟,为了爬取目标数据,必须对爬虫的请求进行伪装,骗过目标系统,目标系统通过判断请求的访问频次或请求参数将疑似爬虫的ip进行封禁,要求进行安全验证,通过python的第三方库faker可以随机生成header伪装请求头,并且减缓爬虫的爬取速度,能很好的避过多数目标系统的反扒机制,但对一些安全等级
3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”!
1\. 为"你"而写 这篇文章,是专门为那些 "刚学习" Python爬虫的朋友,而专门准备的文章。希望你看过这篇文章后,能够清晰的知道整个 "爬虫流程"。从而能够 "独立自主" 的去完成,某个简单网站的数据爬取。好了,咱们就开始整个 “爬虫教学” 之旅吧!2\. 页面分析 ① 你要爬取的网站是什么?首先,我们应该清楚你要爬去的网站是什么?由于这里我们想要
盘点最重要的7个Python库
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书导读:对于那些对Python数据生态系统不太熟悉的人士,我将简要地介绍一部分重要的库。 作者:韦斯·麦金尼(Wes McKinney)译者:徐敬来源:大数据DT(ID:hzdashuju) 01 NumPy http://numpy
手把手教你使用XPath爬取免费代理IP
大家好,我是霖hero。前言 可能有人说,初学者Python爬虫爬数据太难啦,构造正则表达式的时候,太烦琐了,眼睛都看花了,而且前一秒还可以愉快地爬取,下一秒IP就被封了,这还爬个屁啊,不爬了。哎,不要着急,这篇文章我们教你如何使用XPath来爬取快代理中的免费代理IP,告别眼花,告别IP被封的烦恼。XPath首先我们来简单了解一下XPath,想要了解更多
实战|手把手教你用Python爬取存储数据,还能自动在Excel中可视化!
大家好,在之前我们讲过如何用Python构建一个带有GUI的爬虫小程序,很多本文将迎合热点,延续上次的NBA爬虫GUI,探讨如何爬取虎扑NBA官网数据。 并且将数据写入Excel中同时自动生成折线图,主要有以下几个步骤。本文将分为以下两个部分进行讲解 在虎扑NBA官网球员页面中进行爬虫,获取球员数据。 清洗整理爬取的球员数据,对其进行可视化。
手把手教你用Pycharm连接远程Python环境
前言本次咱们来操作一下如何在Pycharm上,使用远程服务器上的Python环境。 为什么这样做?这个要从我的一次经历说起,有一次我帮朋友爬取一些东西,由于类别不同,分了几次爬取,这一次我写好规则之后,依然正常爬取,由于我本人比较善良,加上数据量目测并不是太多,并没有使用代理ip,并且将scpay的速度控制的比较慢,一般爬取时,一般也就几分钟而已,泡一杯咖
使用Scrapy网络爬虫框架小试牛刀
前言这次咱们来玩一个在Python中很牛叉的爬虫框架——Scrapy。 scrapy 介绍标准介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的
爬虫
爬虫什么是爬虫使用编程语言所编写的一个用于爬取web或app数据的应用程序怎么爬取数据1.找到要爬取的目标网站、发起请求2.分析URL是如何变化的和提取有用的URL3.提取有用的数据爬虫数据能随便爬取吗? 遵守robots.txt协议 爬虫的分类通用网络爬虫百度,Google等搜索引擎,从一些初识的URL扩展到整个网站,主要为门户站点搜索引擎和大型网站服务采