【去哪儿游记爬虫实战】Python批量抓取去哪儿旅行游记数据与全文内容

面对海量非结构化的旅游攻略,如何用技术手段一键提取关键信息与完整正文?这篇技术文章为你揭秘完整方案。

大家好,我是@iFeng的小屋。今天分享一个针对去哪儿网旅游攻略板块的爬虫项目,它能高效地批量抓取结构化游记数据,并深入详情页提取完整的正文内容。

一、项目概述与技术选型

1.1 项目背景

旅游攻略平台(如去哪儿网)包含大量用户生成的游记,这些数据对旅游行业分析、目的地研究、内容聚合等领域具有重要价值。然而,人工采集效率低下,且难以保证数据的结构化与一致性。本项目旨在通过自动化爬虫技术,高效、准确地批量采集游记的核心字段与全文内容。

二、展示爬取结果

字段:++用户名,标题,出游天数,具体时间,出行同伴,人均消费,形成,途径,玩法,链接,全文。++

所有数据自动保存到Excel,拿去就能做分析!

三、爬虫代码

导入需要的库:

python 复制代码
import time
import requests
from lxml import etree
import openpyxl
import re

定义一个请求头,Cookie是关键:

python 复制代码
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...',
    'referer': 'https://travel.qunar.com/...',
    'cookie': "这里换成你自己的cookie", # 关键!不换爬不了
}

Cookie怎么获取? 登录去哪儿网攻略页面后,按F12打开开发者工具,在Network里找个请求,复制完整的Cookie值就行。

3.1 核心操作:抓列表+抓详情

这个爬虫聪明在两步走:先抓列表页概要,再逐个进入详情页抓正文。

第一步:抓列表页,提取基本信息

python 复制代码
def parse_one_page(html):
    # 找到页面里所有游记条目
    ii_list = html.xpath('//li[@class="list_item "]')
    
    for ii in ii_list:
        # 用XPath精准提取标题、作者、天数、费用等
        title = ii.xpath('.//h2[@class="tit"]//text()')[0].strip()
        user = ii.xpath('.//span[@class="user_name"]/a/text()')[0].strip()
        # ... 提取其他字段
        # 关键:拼凑出详情页的链接
        url = 'https://travel.qunar.com/travelbook/note/' + ii.xpath('.//h2[@class="tit"]/a/@href')[0].replace('/youji/', '')

第二步:深入详情页,抓取完整正文

python 复制代码
# 访问上一步得到的详情页链接
res1 = requests.get(url, headers=headers, timeout=10)
hji2 = etree.HTML(res1.text)

# 定位到所有正文段落
memo_nodes = hji2.xpath('//div[@class="b_panel_schedule"]//div[@class="text js_memo_node"]')
quanwen_list = []
for node in memo_nodes:
    # 获取每个段落的纯文本,并清理干净
    text = node.xpath('string(.)').strip().replace('\xa0', '').replace('\n', '')
    quanwen_list.append(text)
# 合并所有段落,形成完整游记正文
quanwen = '\n'.join(quanwen_list)

# 高级技巧:用正则提取纯中文,方便后续做文本分析
pattern = "[\u4e00-\u9fa5]+"
results = ','.join(re.findall(quanwen))

3.2 翻页与保存

爬虫自动翻页,并把所有数据存进Excel:

python 复制代码
# 主程序控制爬取1到15页
for i in range(1, 16):
    url = f'https://travel.qunar.com/search/gonglue/22-hefei-300030/hot_heat/{i}.htm'
    # 抓取并解析...
    time.sleep(30) # 重要!等待一下,别把网站爬崩了

# 保存到Excel
sheet.append([用户名字段, 标题字段, ..., 全文字段]) # 把所有字段按顺序放进一行
wb.save('hefei.xlsx') # 保存文件

四、如何运行?

  1. 装环境pip install requests lxml openpyxl

  2. 改配置 :把代码里的cookie换成你自己的。

  3. 定目标:代码里默认爬"合肥",你想爬别的城市?改链接里的城市代码就行。

  4. 运行 :直接跑脚本,坐等hefei.xlsx文件生成。

五、说明与源码

这个爬虫考虑了反爬,加了等待时间,但使用时还请注意频率,尊重网站规则。

代码里还有很多细节,比如异常处理、字段清洗、灵活翻页等。有需要的朋友,可以在我的公主号(与此号同名)自己获取。

我是iFeng,持续分享实用的Python技术干货。如果文章对你有帮助,欢迎点赞、收藏!

相关推荐
张二娃同学1 小时前
第08篇_RNN_LSTM_GRU序列模型
人工智能·python·rnn·深度学习·神经网络·gru·lstm
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月13日
大数据·人工智能·python·信息可视化·语言模型·自然语言处理
我鑫如一1 小时前
专业的AI API中转站厂家
人工智能·python
沐知全栈开发1 小时前
jQuery Mobile 事件详解
开发语言
如竟没有火炬1 小时前
接雨水22
数据结构·python·算法·leetcode·散列表
消晨消晨1 小时前
Pytorch初上手——Dataset自定义数据集与Dataloader数据加载器
人工智能·pytorch·python
小白学大数据2 小时前
均线选股策略研究:基于 Python 数据分析实现
人工智能·python·数据分析
C137的本贾尼2 小时前
从零认识 Spring AI:Java 开发者的 AI 第一课
python·langchain
源码之家2 小时前
计算机毕业设计:Pyhon健康数据分析系统 Django框架 数据分析 可视化 身体数据分析 大数据(建议收藏)✅
大数据·python·数据挖掘·数据分析·django·lstm·课程设计
知识分享小能手2 小时前
R语言入门学习教程,从入门到精通,R语言获取数据 (8)
开发语言·学习·r语言