本文转载自微信公众号「志斌的连景python笔记」,作者志斌。点告点性转载本文请联系志斌的诉景python笔记公众号。
大家好,价比我是连景志斌~
再过几天,志斌就要去大连开始为期三年的点告点性读研生活啦,当然在读书学习的诉景同时,也要去体验一下“魅力之都”的价比魅力,所以志斌用Python爬取了去哪儿网上大连景点的连景相关数据,包括景点名称、点告点性城区、诉景热度、价比价格、连景月销量等数据,点告点性对数据进行可视化并作简单分析,诉景用以找到性价比较高的景点。
去哪儿网的数据存储非常简单,都在源网页中静态存储,我们只需构造好URL之后,用Requests发起请求,然后用Bs4将数据提取出来,存储到Excel中即可。
爬虫的核心代码如下:
import requests from bs4 import BeautifulSoup import openpyxl for page in range(1,50): try: params = ( (from, mps_search_suggest_h), (keyword, 大连), (page, str(page)), ) response = requests.get(https://piao.qunar.com/ticket/list_%E8%A5%BF%E5%AE%89.html, headers=headers, params=params) soup = BeautifulSoup(response.text,html.parser) zongs = soup.find_all(div,class_=sight_item) for i in zongs: name = i.find(h3).text diqu = i.find(class_=area).find(a).text redu = round(float(i.find(class_=product_star_level).text.split()[-1][:4]) * 5, 2) dizhi = re.findall(地址:(.*?)地图, i.find(class_=address color999).text)[0] jiage = float(i.find(class_=sight_item_price).find(em).text) yuexiao = int(i.find(class_=sight_item_sold-num).find(span).text) xingji = i.find(class_=level) jingweidu = i[data-point] ~~~用pandas读取爬取的景点数据并预览。服务器托管
import pandas as pd df = pd.read_excel(大连景区数据_1.xlsx,names=[景点名称,城区,热度,地址,价格,月销量,星级,经度,纬度]) print(df.head())网站中有一定的重复数据,需要将其删除。
df = df.drop_duplicates()查看字段类型和缺失值情况,符合分析需要,无需另做处理。
df.info()我们来对这164个景点数据进行可视化分析。
通过对大连景点介绍进行词云图绘制,我们很容易看出大连的特点。博物馆、休闲、历史、文化等词的大量提及,说明大连是一座历史悠久的现代化城市。建筑、动物、主题等词也有很多提及,表明大连的旅游环境轻松且多样。
代码如下:
with open("推荐语.txt",) as f: job_title_1 = f.read() contents_cut_job_title = jieba.cut(job_title_1) contents_list_job_title = " ".join(contents_cut_job_title) wc = WordCloud(stopwords=STOPWORDS.add("一个"), collocations=False, background_color="white", font_path=r"K:\msyh.ttc", width=400, height=300, random_state=42, mask=imread(xin.jpg, pilmode="RGB") ) wc.generate(contents_list_job_title) wc.to_file("推荐语.png")从景点评分来看,金石滩景点评分最高,为4.55分,其次是老虎滩公园和星海广场,分别是4.5分和4.4分。怪不得一搜索大连的旅游攻略,每一个里面都有这几个景点。服务器租用
从景点价格来看,除了潜水中心这个景点略贵,其他景点价格都还可以接受,去大连游玩的朋友,时间充裕的话可以都体验一下,志斌这三年是要都体验一遍了~
从下图可以看出,海昌发现王国的销量最高,为908,其次是天门峡漂流,为786,志斌还没去过漂流,正好趁着这次在大连读书,抽时间去一次。
老虎滩海洋公园、大连森林动物园、大连圣亚海洋世界的销量也不少,分别是542,488,458。
从下图可以看出、月销额较大的还是海昌发现王国、老虎滩海洋公园、大连圣亚海洋世界、看来月销额受到月销量的高防服务器影响较大,受价格的影响较小。
从大连景点等级分布来看,3A以上等级的景点为24个,其中3A级景点1个,4A级景点21个,5A级景点2个。
从图中我们可以看出,景点大部分分布在旅顺区、中山区、金州区的东南沿海方位。如果来大连旅游的话,建议去旅顺口区或者中山区去住,因为那里交通较为便利。
通过上面简单的分析,我们大致可以获得以下几点发现:
1. 大连是一座历史悠久的现代化城市,很适合旅游。
2. 大连的景点主要集中在旅顺区、中山区、金州区,旅顺区和中山区的景点附近有地铁,所以建议住宿的时候可以尽量选择住在这两个区,这样出行游玩会比较方便。
3. 评分最高的景点是金石滩景点。
4. 本文仅供学习参考,不做它用。
温馨提示:疫情还未结束,外出旅行做好个人防护。尽量避免到中高风险地区游玩。