当前位置:网站首页 >  教程

零基础Python抓取京东公开商品评价的完整可落地实操指南

时间:2026年05月26日 15:39:19 来源:易频IT社区

一、前期准备

只需要提前装好Python3.6及以上版本,Python官方下载地址:https://www.python.org/downloads/,安装时务必勾选Add Python to PATH选项。

1.1 安装所需依赖

Windows按Win+R输入cmd回车打开命令提示符,Mac直接打开终端,执行以下命令即可完成安装:

``` pip install requests pyquery ```

如果下载速度慢,替换为国内镜像源安装命令:

``` pip install requests pyquery -i https://pypi.tuna.tsinghua.edu.cn/simple ```

二、获取目标商品ID

打开京东网页版,进入你要提取评价的商品详情页,查看浏览器地址栏的URL,格式示例:

https://item.jd.com/100012043978.html

URL中.html前缀的纯数字就是商品ID,本例中商品ID为100012043978,复制保存这个ID备用。

三、编写可直接运行的完整代码

新建一个空白文本文档,将文件名后缀改为.py(例如命名为jd_comment.py),把下面的代码完整复制进去,只需要修改代码开头的两个配置参数,其他内容无需改动

``` import requests import csv import time from pyquery import PyQuery as pq 需要你修改的配置项- PRODUCT_ID = "100012043978" 替换成你复制的商品ID TOTAL_PAGE = 10 替换成你要抓取的总页数,每页默认返回10条评价 SCORE_TYPE = 0 0=全部评价 1=好评 2=中评 3=差评 模拟浏览器请求头,避免被反爬拦截 HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Referer": "https://item.jd.com/" } 初始化CSV文件保存结果,utf_8_sig编码支持Excel直接打开不乱码 with open(f"jd_comments_{PRODUCT_ID}.csv", "w", newline="", encoding="utf_8_sig") as f: writer = csv.writer(f) 写入表头 writer.writerow(["用户昵称", "评价内容", "评分", "评价时间", "购买规格"]) 循环抓取每一页 for page in range(TOTAL_PAGE): 拼接京东官方公开评价接口 url = f"https://club.jd.com/comment/productPageComments.action?productId={PRODUCT_ID}&score={SCORE_TYPE}&sortType=5&page={page}&pageSize=10&isShadowSku=0&fold=1" 发送请求获取数据 response = requests.get(url, headers=HEADERS, timeout=10) data = response.json() comments = data.get("comments", []) 无更多评价时自动终止 if not comments: print(f"已抓取全部可用评价,共{page}页") break 解析每条评价字段 for comment in comments: nickname = comment.get("nickname", "匿名用户") content = pq(comment.get("content", "")).text().replace("\n", " ") score = comment.get("score", "") create_time = comment.get("creationTime", "") spec = f"{comment.get('productColor', '')} {comment.get('productSize', '')}".strip() 写入CSV文件 writer.writerow([nickname, content, score, create_time, spec]) print(f"第{page+1}页抓取完成,本次获取{len(comments)}条评价") 抓取多页时添加间隔,避免触发反爬 if TOTAL_PAGE > 5: time.sleep(1) print(f"\n全部任务完成,结果保存在当前文件夹:jd_comments_{PRODUCT_ID}.csv") ```

四、运行代码获取结果

零基础Python抓取京东公开商品评价的完整可落地实操指南

打开命令提示符/终端,进入你保存jd_comment.py的文件夹,例如文件存在D盘的jd文件夹下,依次执行命令:

``` d: cd jd ```

然后执行运行命令:

``` python jd_comment.py ```

等待程序运行完成,就会在同一文件夹下生成CSV格式的评价文件,直接用Excel或WPS打开即可查看、筛选所有评价内容。

五、常见问题解决

  • 1. 运行提示模块不存在

    如果执行命令提示找不到requests或pyquery,说明你的环境默认调用python2,把pip和python替换为pip3和python3即可,安装命令改为pip3 install requests pyquery,运行命令改为python3 jd_comment.py

  • 2. 运行报错,抓取不到数据

    首先检查商品ID是否正确,不要带多余的空格或符号,下架、未上架的非公开商品不会有评价数据。如果还是报错,浏览器搜索「我的UA」,把复制得到的自己浏览器的User-Agent替换代码中HEADERS里的对应值即可。

  • 3. 抓取大量评价会被封IP吗

    京东公开评价接口对普通访问限制很低,单次抓取100页以内都不会触发拦截,代码默认已经给超过5页的抓取添加了1秒间隔,如果需要抓取更多页数,可以把间隔修改为2秒,不会有问题。

  • 4. CSV打开乱码怎么办

    代码已经默认使用utf_8_sig编码,WPS和Excel都可以正常打开,如果还有乱码,用记事本打开CSV文件,选择「另存为」,编码选择UTF-8保存后再用Excel打开即可。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图