京东商品评论图片爬虫教程:轻松下载用户晒单图

京东商品评论图片爬虫教程:轻松下载用户晒单图


关键词:京东评论爬虫、Python爬虫、图片下载、数据爬取、CSDN热门


📌 前言

在电商分析或竞品调研中,用户评论图片是重要的数据来源。本教程将手把手教你使用Python脚本爬取京东商品评论中的用户晒单图片,并保存到本地。代码简单易用,适合新手学习,也可作为项目实战案例!


🛠️ 环境准备

  1. Python 3.6+(推荐使用Anaconda)

  2. 安装依赖库

    bash

    复制

    pip install requests pandas
    

📥 脚本使用步骤

1. 获取商品链接

2. 运行脚本

将以下代码保存为 jing_dong.py,运行并按提示操作:

python

复制

# 代码见问题描述中的文件内容
输入说明:
  • 商品链接:粘贴复制的京东商品链接。
  • 评论页数:爬取多少页评论(每页10条)。

⚙️ 功能详解

1. 自动解析商品ID

脚本通过正则表达式从链接中提取商品ID,并创建同名文件夹保存图片。

2. 图片下载逻辑

  • 图片URL处理:修复京东图片缩略图路径,获取高清原图。
  • 防重复命名:使用评论ID + 序号作为文件名,避免冲突。
  • 异常处理:自动跳过下载失败的图片并打印错误信息。

3. 反爬策略

  • Headers设置:模拟浏览器User-Agent。
  • 请求间隔time.sleep(1.5) 控制请求频率,避免被封IP。

❗ 常见问题

Q1:运行时报错 ModuleNotFoundError

原因:未安装依赖库。
解决:执行 pip install requests pandas

Q2:图片下载失败或保存为空文件

原因:网络超时或图片URL失效。
解决

  1. 检查网络连接,尝试重新运行。
  2. 修改代码中的 timeout 参数(默认10秒)。

Q3:无法获取评论数据

原因:京东API结构变化或触发反爬。
解决

  1. 在Headers中添加 Referer 字段(取消代码注释)。
  2. 增加随机延迟或使用代理IP。

🚀 扩展功能

  1. 保存评论数据到CSV
    取消代码末尾的注释,修改 data_list 结构以存储评论内容、用户昵称等字段。
  2. 多线程下载:使用 threading 库加速图片下载。

📸 效果展示

在这里插入图片描述
在这里插入图片描述


全部代码展示:

import requests
import time
import pandas as pd
import re
import os

url = input("请输入商品链接:")
product_id = re.search(r'(?<=item\.jd\.com\/)\d+(?=\.html)', url).group()

# 创建保存图片的文件夹
os.makedirs(product_id, exist_ok=True)

total_pages = int(input("请输入评论页数:"))
output_file = "../淘宝评论爬取/comments.csv"
data_list = []

for page in range(0, total_pages + 1):
    # 构建评论API请求URL
    api_url = (
        f"https://club.jd.com/comment/productPageComments.action"
        f"?productId={product_id}"
        f"&score=0&sortType=5"
        f"&page={page}&pageSize=10"
        "&isShadowSku=0&fold=1"
    )

    headers = {
        "User-Agent": "填写自己的User-Agent",
        # "Referer": url  # 添加Referer反反爬
    }

    time.sleep(1.5)
    response = requests.get(api_url, headers=headers)
    data = response.json()

    if "comments" not in data:
        continue

    for comment in data["comments"]:
        comment_id = comment.get("id", "unknown_id")  # 提取评论ID
        images = comment.get("images", [])

        if images:
            for img_index, img in enumerate(images):
                img_url = img.get("imgUrl", "")
                if not img_url:
                    continue

                # 处理图片URL格式
                if img_url.startswith("//"):
                    img_url = f"https:{img_url}"
                img_url = img_url.replace("n0/s128x96_jfs", "shaidan/s616x405_jfs")

                try:
                    # 下载图片
                    img_response = requests.get(img_url, headers=headers, timeout=10)
                    # 检查HTTP错误

                    # 生成唯一文件名
                    filename = f"{comment_id}_{img_index}.jpg"

                    # 保存图片
                    with open(save_path, "wb") as f:
                        f.write(img_response.content)
                    print(f"图片已保存: {save_path}")

                except Exception as e:
                    print(f"下载失败: {img_url} - 错误: {str(e)}")

                time.sleep(0.5)  # 避免频繁请求

        else:
            data_list.append("")  # 无图片时填充空值

# 可选:将评论数据保存到CSV(根据实际需求完善字段)
# df = pd.DataFrame(data_list, columns=["字段1", "字段2"])
# df.to_csv(output_file, index=False)

💡 总结

本脚本实现了京东评论图片的自动化爬取,适合用于数据采集、竞品分析等场景。后续可结合Scrapy框架或数据库存储进行功能增强。

提示:爬虫需遵守网站规则,勿用于商业用途或高频访问!


© 版权声明:本文由[执笔画留年?]原创,转载请注明出处。
🔥 关注我,获取更多Python爬虫与数据分析干货!有问题可+:

an1544167879

💡 总结

本脚本实现了京东评论图片的自动化爬取,适合用于数据采集、竞品分析等场景。后续可结合Scrapy框架或数据库存储进行功能增强。

提示:爬虫需遵守网站规则,勿用于商业用途或高频访问!


🔥 关注我,获取更多Python爬虫与数据分析干货!有问题可+:

an1544167879
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值