python爬取去哪儿网机票_干货|Python爬取《去哪儿》攻略库,制作一份详细的旅行攻略,疫情后来一场说走就走的旅行!...

f189b1e01fb8dc48f1f952476e8e5170.png

去哪儿是中国领先的在线OTA网站,为消费者提供机票、酒店、会场 、度假产品的实时搜索,并提供旅游产品团购以及其他旅游信息服务。去哪儿网站上有丰富的图片、评论数据,这些大量的数据对于从事数据岗位的来说的确是一种福利,有了这些我们可以练习爬虫技能、数据分析与可视化,漂亮的图片做文案素材也是一种不错的选择。

疫情总会过去的,宅了这么久,相信很多人疫情后都会来一场说走就走的旅行。小编今天准备爬取去哪儿的攻略库,并制作了一份详细的数据分析、可视化的旅行攻略。

43c0e98524cb156c441a8d06d95ba400.png

网页分析

爬虫流程三步曲:

  • 打开网站,分析网页上的数据;
  • 通过F12开发者工具,获取接口是数据是html还是json,翻页是url控制还是ajax;
  • 编写代码发起网络请求,添加反爬机制、容错环节;

d8219055a91636b92816f8a3615aff11.png

通过对网页的分析,我们有几个点是确定的:

  • 不同城市的网址不同,我们需要收集爬取城市的网址;
  • 数据在html中可以获取,我们对html进行解析;
  • 对于html的网页,我们需要边爬取保存数据;
  • 每个城市可以爬取200页,有些城市数据不足200页

数据获取

1.确定爬取字段

42dc8a48eacc0a064ace0f16f9b9cd35.png

爬取数据的字段有:区域、目的地、标题、链接、攻略作者、出发日期、天数、照片数、人数、玩法、费用、阅读数、点赞数、评论数、行程等。

2.获取最大页数

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个基于Python的爬虫程序,可以爬取去哪儿的旅游数据,并进行可视化分析。具体代码如下: ```python import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt # 设置请求头部信息 headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 发送请求获取HTML页面 def get_html(url): r = requests.get(url, headers=headers) r.encoding = r.apparent_encoding return r.text # 解析HTML页面获取数据 def parse_html(html): soup = BeautifulSoup(html, 'html.parser') data_list = [] for item in soup.find_all('div', class_='gl_list'): data = { 'title': item.find('a', class_='list_title').get_text(), 'price': item.find('span', class_='price').get_text(), 'comment': item.find('div', class_='comment').get_text() } data_list.append(data) return data_list # 将数据保存到CSV文件中 def save_to_csv(data_list): df = pd.DataFrame(data_list) df.to_csv('travel_data.csv', index=False) # 可视化分析 def analyze_data(): df = pd.read_csv('travel_data.csv') # 统计价格区间占比 price_list = df['price'].tolist() bins = [0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000] labels = ['0-100', '100-200', '200-300', '300-400', '400-500', '500-600', '600-700', '700-800', '800-900', '900-1000+'] price_cut = pd.cut(price_list, bins=bins, labels=labels) price_cut.value_counts().plot(kind='bar', rot=0) plt.title('Price Distribution') plt.xlabel('Price Range') plt.ylabel('Count') plt.show() # 统计评论数量占比 comment_list = df['comment'].tolist() comment_count = {} for comment in comment_list: count = comment_count.get(comment, 0) count += 1 comment_count[comment] = count labels = list(comment_count.keys()) values = list(comment_count.values()) plt.pie(values, labels=labels, autopct='%1.2f%%') plt.title('Comment Distribution') plt.show() if __name__ == '__main__': url = 'https://travel.qunar.com/p-cs299895-huangshan-jingdian' html = get_html(url) data_list = parse_html(html) save_to_csv(data_list) analyze_data() ``` 运行以上代码后,程序会自动爬取去哪儿的旅游数据,并将数据保存到CSV文件中。接着,程序会进行可视化分析,展示价格区间和评论数量的分布情况。可以根据需要对代码进行适当修改,以适应不同的爬取和分析需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值