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

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


关键词:京东评论爬虫、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
相关推荐
Cherry的跨界思维1 分钟前
5、Python长图拼接终极指南:Pillow/OpenCV/ImageMagick三方案
javascript·python·opencv·webpack·django·pillow·pygame
by__csdn3 分钟前
第一章 (ASP.NET Core入门)第三节( 认识.NET Standard)
后端·c#·asp.net·.net·.netcore·f#·vb.net
数据小馒头7 分钟前
生成测试数据(一):分钟级构建百万级数据,测试数据库性能
后端
helloworld工程师11 分钟前
Dubbo应用开发之基于Dubbo协议的springboot规范性开发
spring boot·后端·dubbo
码途进化论15 分钟前
前端Docker多平台构建自动化实践
前端·javascript·后端
悟空码字15 分钟前
SpringBoot 整合 RabbitMQ:和这只“兔子”交朋友
java·后端·rabbitmq
acethanlic18 分钟前
使用Ruff进行Python代码Format、lint和fix
python
BingoGo19 分钟前
万物皆字符串 PHP 中的原始类型偏执
后端·php
codists19 分钟前
在 Pycharm 中 debug Scrapy 项目
python
Carve_the_Code20 分钟前
订单ID容量升级:从40位到64位的架构演进
后端