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

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


关键词:京东评论爬虫、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
相关推荐
Dxy12393102162 分钟前
Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析
python·opencv
大G哥3 分钟前
19_大模型微调和训练之-基于LLamaFactory+LoRA微调LLama3
人工智能·pytorch·python·深度学习·计算机视觉
幽络源小助理9 分钟前
SpringBoot框架开发网络安全科普系统开发实现
java·spring boot·后端·spring·web安全
小江-33 分钟前
手写数字识别项目
python
胡耀超1 小时前
从逻辑学视角理解统计学在数据挖掘中的作用
人工智能·python·数据挖掘·统计学·逻辑学
不会飞的鲨鱼1 小时前
Windows系统下【Celery任务队列】python使用celery 详解(二)
开发语言·windows·python
酷小洋1 小时前
JavaWeb基础
后端·web
一切皆有迹可循1 小时前
Spring Boot 基于 Cookie 实现单点登录:原理、实践与优化详解
java·spring boot·后端
bing_1582 小时前
Spring Boot 中 MongoDB @DBRef注解适用什么场景?
spring boot·后端·mongodb
ayiya_Oese2 小时前
[数据处理] 6. 数据可视化
人工智能·pytorch·python·深度学习·机器学习·信息可视化