You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Naver地图爬虫数据导出为.csv文件?

解决Naver地图爬虫数据导出CSV的问题

核心思路

评论属于一对多的关联数据,最合理的导出方式是将每条评论单独作为一行,同时重复对应的商家基础信息(方便后续分析);如果想把同商家的所有评论合并到同一行,可用换行、分号这类分隔符将评论拼接成单个字符串。

下面基于Python标准库csv(无需额外安装)和常用的pandas两种方案给出代码,你可以根据自己的抓取数据结构调整。


假设你抓取到的数据结构

先模拟你已获取的变量结构(请替换成你实际的变量名):

# 示例数据:每个商家是字典,包含基础信息和评论列表
crawled_data = [
    {
        "商家名称": "首尔烤肉店",
        "地址": "首尔市江南区XX路123号",
        "电话": "02-1234-5678",
        "评分": 4.8,
        "评论": [
            {"用户": "张三", "内容": "肉质新鲜,服务很好", "评分": 5, "日期": "2024-05-01"},
            {"用户": "李四", "内容": "排队太久,味道一般", "评分": 3, "日期": "2024-04-28"}
        ]
    },
    {
        "商家名称": "釜山海鲜馆",
        "地址": "釜山市海云台区XX街456号",
        "电话": "051-9876-5432",
        "评分": 4.5,
        "评论": [
            {"用户": "王五", "内容": "海鲜很新鲜,性价比高", "评分": 5, "日期": "2024-05-03"}
        ]
    }
]

方案1:使用Python标准库csv(无需额外安装)

这个方案不需要安装任何第三方包,直接用Python自带模块:

import csv

# 1. 展开数据:将商家信息与每条评论合并成扁平字典
flattened_data = []
for shop in crawled_data:
    # 提取商家基础信息(排除评论字段)
    shop_info = {k: v for k, v in shop.items() if k != "评论"}
    # 遍历每条评论,合并商家信息
    for comment in shop["评论"]:
        flattened_row = {**shop_info, **comment}
        flattened_data.append(flattened_row)

# 2. 定义CSV表头(所有字段)
headers = list(flattened_data[0].keys()) if flattened_data else []

# 3. 写入CSV文件
with open("naver_map_shops.csv", "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=headers)
    writer.writeheader()  # 写入表头
    writer.writerows(flattened_data)  # 写入所有行

注意:encoding="utf-8-sig"是为了让Excel能正确识别中文,避免乱码。

如果你的评论只是纯文本列表(不是字典),比如"评论": ["好吃", "一般"],可改成如下处理:

flattened_data = []
for shop in crawled_data:
    shop_info = {k: v for k, v in shop.items() if k != "评论"}
    for comment_text in shop["评论"]:
        flattened_row = {**shop_info, "评论内容": comment_text}
        flattened_data.append(flattened_row)

方案2:使用pandas(更简洁,需安装)

如果你能安装依赖,pandas的处理会更简单:

  1. 先安装pandas(命令行执行):
pip install pandas
  1. 导出代码:
import pandas as pd

# 展开数据
df_list = []
for shop in crawled_data:
    shop_df = pd.DataFrame(shop["评论"])
    # 添加商家基础信息列
    for k, v in shop.items():
        if k != "评论":
            shop_df[k] = v
    df_list.append(shop_df)

# 合并所有数据并导出
final_df = pd.concat(df_list, ignore_index=True)
final_df.to_csv("naver_map_shops.csv", encoding="utf-8-sig", index=False)

关键注意事项

  • 确保你的爬虫变量和示例结构对应,比如商家信息的键名、评论列表的键名,要替换成你实际的变量名。
  • 如果抓取的评论为空,代码会自动跳过,不会报错。
  • 导出的CSV文件会保存在代码运行目录下,直接用Excel或WPS打开即可查看。

内容的提问来源于stack exchange,提问作者Hanyang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:30:43