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

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


关键词:京东评论爬虫、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
相关推荐
Python破壁人手记2 分钟前
《我的Python觉醒之路》之转型Python(十三)——控制流
开发语言·python·神经网络·学习·机器学习
thePLJ19 分钟前
SpringBoot-已添加并下载的依赖,reload和mvn clean 后还是提示找不到jar包问题
java·spring boot·后端
eqwaak022 分钟前
实时数仓中的Pandas:基于Flink+Arrow的流式处理方案——毫秒级延迟下的混合计算新范式
大数据·分布式·python·学习·flink·pandas
余华余华22 分钟前
输入输出 数组 冒泡排序举例
java·后端
俞嫦曦33 分钟前
R语言的回归测试
开发语言·后端·golang
JalenYan34 分钟前
Ruby on Rails 中的 Delegated Types(委托类型)
后端·ruby on rails·ruby
hxung37 分钟前
spring bean的生命周期和循环依赖
java·后端·spring
油丶酸萝卜别吃41 分钟前
springBoot中不添加依赖 , 手动生成一个token ,并校验token (使用简单 , 但是安全会低一点)
spring boot·后端·安全
带娃的IT创业者43 分钟前
《Python实战进阶》No23: 使用 Selenium 自动化浏览器操作
python·selenium·自动化
钢铁男儿1 小时前
Python 生成数据(绘制简单的折线图)
开发语言·python·信息可视化