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

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


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


📌 前言

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


🛠️ 环境准备

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

  2. 安装依赖库

    bash

    复制

    复制代码
    pip install requests pandas

📥 脚本使用步骤

1. 获取商品链接

2. 运行脚本

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

python

复制

bash 复制代码
# 代码见问题描述中的文件内容
输入说明:
  • 商品链接:粘贴复制的京东商品链接。
  • 评论页数:爬取多少页评论(每页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 库加速图片下载。

📸 效果展示


全部代码展示:

python 复制代码
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
相关推荐
明理的信封几秒前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
IT_陈寒1 小时前
SpringBoot自动配置不是你以为的那样的智能
前端·人工智能·后端
麻雀飞吧1 小时前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
daphne odera�2 小时前
PyCharm 中 Codex 插件启动失败:unknown variant default 的解决方法
python·chatgpt·pycharm
nbu04william2 小时前
Deepseek-api省token的用法
python·大模型·token·deepseek
测试老哥2 小时前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
坚持学习前端日记2 小时前
国产化适配全流程适配英伟达本地开发
人工智能·python
程序员张33 小时前
SpringBoot集成BCrypt密码加密库
java·spring boot·后端
CaffeinePro3 小时前
FastAPI数据库集成SQLAlchemy异步ORM全方案
后端·fastapi
源图客3 小时前
云途物流API开发-鉴权认证(Java)
java·网络·python