Hi~大家好!
2020年顺水而走,2021顺风而来!祝大家新年快乐!2021年牛气冲天!
新年到了,元旦节也到了,不知道大家有没有放3天的小长假呢?有没有准备去哪玩呢?没有想好的没关系,今天,锋小刀以热门旅游城市澳门为例,用Python获取穷游网的相关景点数据,包括景点名称、评分、综合排名、点评人数、评论数据等字段,对数据进行可视化并作简单分析,看看去哪玩好。
获取数据
目标网址:
代码语言:javascript复制https://place.qyer.com/macau/sight/
穷游网网页没有什么反爬虫措施,数据放在json中,数据爬取较为简单。找到真实url后,构造参数拼接,用request请求json数据,然后把数据保存在csv文件即可。
这里需要注意的是,这条url是用post方式进行请求数据的,所以我们需要用requests.post进行请求。
看到post的请求方式时,我们就要向下滑动鼠标到最后,这些参数一般只要认识一个页数page就可以了,这里需要用字典格式构建requests中的params参数,把相关参数传入url进行数据的请求。
核心代码如下:
代码语言:javascript复制def data_text(res_html,df):
json_html = json.loads(res_html)
for lists in json_html['data']['list']:
cnname = lists['cnname'] # 景点名称
grade = lists['grade'] # 景点评分
rank = lists['rank'] # 景点排名
comment_Count = lists['commentCount'] # 点评人数
text = pd.DataFrame({'景点名称': [cnname], '景点评分': [grade], '景点排名': [rank], '点评人数': [comment_Count]})
df = pd.concat([df, text])
df.to_csv('澳门景点数据.csv', encoding='utf-8', mode='a ', header=False)
数据可视化分析
导入需要用到的包:
代码语言:javascript复制import pandas as pd
import jieba
import numpy as np
from matplotlib import pyplot as plt
from wordcloud import WordCloud
from PIL import Image
导入数据并重命名标题行:
代码语言:javascript复制df = pd.read_csv('澳门景点数据.csv', names=['name', 'grade', 'rank', 'comment_Count'])
预览下数据:
查看评论最多的十个景点:
代码语言:javascript复制df_grade = df.pivot_table(index='name', values='comment_Count')
df_grade.sort_values('comment_Count', inplace=True, ascending=False)
data1 = df_grade[:10]
对评论最多的十个景点进行数据可视化,发现澳门大三巴牌坊的评论数最多,其次是百老汇,接着是大炮台。
这里我分别对澳门大三巴牌坊、百老汇、大炮台的评论数据进行爬取并进行词云绘制。
代码语言:javascript复制text = open(r'.大三巴牌坊.csv', 'r', encoding="utf-8").read()
cut_text = jieba.cut(text)
result = ' '.join(cut_text)
img=Image.open(r'.图1.jpg')
img_array = np.array(img)
wc = WordCloud(mask=img_array, font_path=r'.simhei.ttf', background_color='white')
wc.generate(result)
wc.to_file(r'.大三巴牌坊.jpg')
plt.imshow(wc)
plt.axis("off")
plt.show()
通过对澳门大三巴牌坊景点评论数据进行词云图绘制,我们可以看出澳门大三巴的特点。澳门大三巴牌坊、历史、教堂、建筑等词被大量提及,标志性、地标等词也有一定提及,可以看出大三巴牌坊是澳门具有历史性的标志性建筑。
在词云中我们可以看到历史、澳门、炮台、博物馆、大三巴牌坊等词被大量提及。在近代,荷兰人企图入侵时,这座炮台为当时澳门防御系统的核心。去完大三巴牌坊接着可以去下大炮台,大三巴牌坊就在大炮台山脚下。在大炮台内有澳门博物馆,去大炮台接着还可以去博物馆看一下的。
在词云中我们可以看到百老汇、表演、剧场、演出、音乐剧等词被提及。可以看出这里的歌舞剧、音乐剧演出很多,可以去看下陶冶情操。
查看评分最高的十五个景点,其中十分为满分:
代码语言:javascript复制df_qunarPrice = df.pivot_table(index='name', values='grade')
df_qunarPrice.sort_values('grade', inplace=True, ascending=False)
data1 = df_qunarPrice[:15]
我们惊奇的发现,评分为满分的有十一个景点。
对其相应的点评人数进行查看才知道,是一些景点的点评人数相对较少。从下图可以看出,大三巴牌坊和葡挞的点评人数较多,分别为496与159,而且评分都为满分。但其它的景点的点评人数就少了,所以我们不能只看评分,还是要看下评论的,毕竟群众的眼睛是雪亮的。
小结
通过上面简单的分析,我们可以得出以下结论:
(1)澳门的人文历史气息浓厚,古老的建筑有很多;
(2)澳门大三巴牌坊、大炮台、澳门博物馆等景点距离不远,可以串游;
(3)百老汇的歌舞剧、音乐剧演出很多,可以去下陶冶情操;
(4)澳门不只是有赌场,还是有很多需要人去发觉的正能量气息。
THE END