前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021年到了,用python爬取穷游网数据分析看看去哪玩好

2021年到了,用python爬取穷游网数据分析看看去哪玩好

作者头像
Python与Excel之交
发布2021-08-05 14:09:26
1.3K1
发布2021-08-05 14:09:26
举报
文章被收录于专栏:Python与Excel之交

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与Excel之交 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取数据
  • 数据可视化分析
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档