来源:可以叫我才哥作者:才哥
马上就要五一了,这两天五一的火车票也正式开抢了,不知道各位小伙伴有没有被秒光的车票吓到呢!?
然鹅,作为想去海南三亚旅行的才哥,简直是被这过万的单程机票给惊呆了啊!!
看着只剩下过万价格的公务舱,想着今年这个去三亚的玩家也忒多了吧,那么三亚为啥如此具有吸海角披风少年 妈妈本人引力呢?
怀着对三亚的好奇,我们今天用python爬取某程网三亚景区数据,就看看这个有着东方夏威夷的旅游城市都有什么好玩的吧!
01
关于三亚
沙滩、海鲜、潜水是三亚度假的三大永恒主题。地处中国海南岛最南端的三亚,四季如夏,鲜花盛开,素有“东方夏威夷”之称,在三亚约两百公里的海岸线上,密布了亚龙湾、大东海、海角披风少年 妈妈本人三亚湾等众多海湾,椰树成林;海上的有东、西两岛为碧波万顷的海面增加层次,互掩其中。蜈支洲岛享有“中国第一潜水基地”美誉,有中国保护最完好的生态珊瑚礁。
02
景点数据爬取
本次我们从某程网爬取三亚的景点数据,使用requests+bs4+re+pandas进行数据请求、数据解析和预处理。
2.1
爬取字段海角披风少年 妈妈本人
景区名称
排名
地址
星级
价格
评分
评价数
推荐评价内容
2.2
网页分析
我们打开网站https://you.ctrip.com/sightlist/sanya61/s0-p2.html,进行翻页,发现变化的是p2部分的数字,其正好对应页码。然后,查看最下方总页码数,一共22页,构建全部url地址如下:f海角披风少年 妈妈本人or i in range(1,22):
url = fhttps://you.ctrip.com/sightlist/sanya61/s0-p{i}.html2.3
数据请求
我们直接使用requests.get(url)进行数据请求,发现返回码是404:In [1]: requests.get(url海角披风少年 妈妈本人)
Out[1]: <Response [404]>
经过简单的尝试,发现只要带上模拟浏览器请求头即可:In [2]: importrequests
…:
…: headers = {
…: “Accept-Encoding”: “Gzip”, # 使用gzip压缩传输数据让访问更快 …: “User-A海角披风少年 妈妈本人gent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36”,
…: }
…:
…: url = fhttps:海角披风少年 妈妈本人//you.ctrip.com/sightlist/sanya61/s0-p1.html…: resp = requests.get(url,headers=headers)
In [3]: resp.status_code
Out[3]: 200In [4]: resp.text[:200] # 预览海角披风少年 妈妈本人部分数据Out[4]: \n<!DOCTYPE html>\n<html>\n <head>\n <meta name=”viewport” content=”widt2.4
数据解析
本例我们采用bs4为主要解析工具,辅助re正则表达式处理。引入需要的库:importrequests海角披风少年 妈妈本人
from bs4 importBeautifulSoup
importre
import pandas as pd查找景点数据所在节点:先看需要的数据字段所在网页的节点位置,然后一一进行解析。我们发现每页全部景点所在都在一个节点底下,且每个景点都很整齐都在节点div(属性满足class=”list_mod2″)中海角披风少年 妈妈本人。html_doc = resp.text
soup = BeautifulSoup(html_doc, html.parser)
divs = soup.find_all(div,class_=“list_mod2”):
排名 = re.findall(\d+,div.dl.dt.s.text)[0] # 获取排名数字except:
排名 =
地址 = r海角披风少年 妈妈本人e.sub(\s,,div.find(dd,class_=“ellipsis”).text) # 去掉非字符内容try:
星级 = re.search(r([a-zA-Z]+),div.find_all(dd)[1].text).group()
except:
星级 =
try:
价格 = re.findall海角披风少年 妈妈本人(r(\d+),div.find(span,class_=“price”).text)[0]# 获取价格数字except:
价格 =
try:
评分 = div.ul.li.a.strong.text
except:
评分 =
try:
评价数 = re.search(r(\d+),div.find(a,rel海角披风少年 妈妈本人=“nofollow”).text).group() # 获取评价数数字except:
评价数 = 02.5
数据转DataFrame类型
为了便于后续进行数据处理,这里将采集的数据全部转为DataFrame类型。df = pd.DataFrame(columns=[景区名称, 排名, 地址, 星级, 价格, 评分, 评海角披风少年 妈妈本人价数])
item = {
景区名称:景区名称,
排名:排名,
地址:地址,
星级:星级,
价格:价格,
评分:评分,
评价数:评价数,
}
df = df.append(item,ignore_index=True)03
三亚景点
在某程网我们一共爬取到315个景点,其中11个有星级的景区,在这11个星级景区中3海角披风少年 妈妈本人个5A和8个4A。3.1
.15A景区盘点
我们先看看5A景区都有哪些吧。>>蜈支洲岛蜈支洲岛的风景很好,岛上一派热带风光。这里海水能见度高,水下世界绚丽多彩,是我国热门的潜水胜地。同时,还是进行摩托艇、香蕉船、水上降落伞等水上活动的好地方。岛上的景点极具浪漫风情,有情人桥、观浪亭、观海长廊、“HAPP海角披风少年 妈妈本人Y LOVE”标志等。除了美丽的风光,蜈支洲岛还有极具特色的别墅、木屋以及酒吧、海鲜餐厅等配套设施。蜈支洲岛珊瑚酒店及蜈支洲岛度假中心可提供住宿,但房间都比较抢手,需要提前预定。如果住在岛上的话一定记得去观日岩看日出,那里是观日出的绝佳之地。蜈支洲岛
>>南山文化旅游区南山文化旅游区是我国有名的宗教与海角披风少年 妈妈本人福寿文化景区,在这里既能欣赏山海自然美景,还可拜访众多佛教名胜、参观举世闻名的“南山海上观音”,获得佛教文化带来的心灵荡涤,体味回归自然本真的乐趣。不二法门-南山寺-三十三观音堂-南山海上观音3.2
最受欢迎的景点
我们以评价海角披风少年 妈妈本人数多少评判景区受欢迎程度,发现蜈支洲岛也太火爆了点,高达3.18万评价数,当之无愧5A级景区最受欢迎的景点。此外,亚龙湾热带天堂森林公园和天涯海角也超级受欢迎!3.3
综合评价最高的景点(评分+评价数)
我们以评价数归5化,和评分进行相加得到满分为10分的综合评价值。df[综合评价] = 5* (df.评价数 / df.评价数.max()) + df.评分
df.sort_values(综合评价,ascending=False).hea海角披风少年 妈妈本人d(10)
04
游客游记抓取与词云
我这边选择的是行程天数3-5天、出发时间3-5月的全部游记共131页 1308篇。4.1
游记数据爬虫
爬虫也比较简单,先从遍历全部页码获取游记列表,再解析到每篇游记详情页url,最后在详情页海角披风少年 妈妈本人解析游戏内容即可。解析每篇游记详情页url
urls = []
for i in range(1,132):
url = fhttps://you.ctrip.com/travels/sanya61/t2-p{i}-d2-m1.htmlresp = requests.get(url,header海角披风少年 妈妈本人s=headers)
html_doc = resp.text
soup = BeautifulSoup(html_doc, html.parser)
a_s = soup.find_all(a,class_=“journal-item cf”)
for a ina_s:
urls.append(https://y海角披风少年 妈妈本人ou.ctrip.com + a[href])
print(f{i}页数据已采集..)
获取游记文本数据详情
contents = []
for url inurls:
if sanya61 inurl:
resp = requests.get(url,headers=headers)
html_doc = resp.te海角披风少年 妈妈本人xt
soup = BeautifulSoup(html_doc, html.parser)
content = re.sub(\s+,\n,soup.find(div,class_=“ctd_content”).text)
contents.append(content)
print(f{len(conte海角披风少年 妈妈本人nts)}个有效游记已记录..)
4.2
游记关键字词云
在我们采集的1300余篇三亚的旅行游记中,词频最高的除了三亚之外,三亚的酒店似乎也备受大家关注,此外就是各大主要的景区聚集地(蜈支洲岛、三亚湾、亚龙湾、大东海等等),接着就是经典的景点(天涯海角、第一市场、西岛等等)。关于体验上,大家提到最海角披风少年 妈妈本人多的必须是三亚的沙滩、吃的海鲜等等),整体反馈都是不错和喜欢!!扫码加入社区