手把手教你抓取京東商品評論:API 接口解析與 Python 實戰(zhàn)
一、引言
京东商品评论是用户对商品的真实反馈,包含了大量有价值的信息,如产品质量、使用体验、服务评价等。通过分析商品评论,可以帮助企业了解用户需求、优化产品,也可以为消费者提供参考。由于京东没有公开官方评论 API,我们需要通过逆向工程分析网页请求来获取这些数据。
二、接口概述
京东商品评论数据主要通过以下接口提供:
商品评论列表接口
productId
: 商品 ID(SKU)score
: 评分筛选(0 - 全部,1 - 差评,2 - 中评,3 - 好评)sortType
: 排序方式(5 - 时间排序,6 - 推荐排序)page
: 页码(从 0 开始)pageSize
: 每页数量(默认 10,最大 100)isShadowSku
: 是否为影子 SKU(0 - 否,1 - 是)rid
: 晒单 ID(获取特定晒单的评论时使用)fold
: 是否折叠评论(1 - 折叠,0 - 不折叠)
请求方式: GET
主要参数:
接口返回格式
comments
: 评论列表maxPage
: 最大页数productCommentSummary
: 评论摘要(好评率、差评率等)hotCommentTagStatistics
: 热门评论标签
数据格式: JSON
主要字段:
三、Python 请求示例
下面是使用 Python 实现京东商品评论抓取的代码示例: python
import requests import json import time import random from fake_useragent import UserAgent # 使用示例 # 假设 API 封装接口地址 API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014 if __name__ == "__main__": spider = JDCommentSpider() product_id = "100012084348" # iPhone 12 示例SKU # 爬取第一页评论 first_page_comments = spider.get_product_comments(product_id, page=0) if first_page_comments: print(f"第一页评论数量: {len(first_page_comments.get('comments', []))}") print(f"好评率: {first_page_comments.get('productCommentSummary', {}).get('goodRate')}") # 爬取商品的前3页评论 all_comments = spider.crawl_all_comments(product_id, max_pages=3) print(f"总共爬取 {len(all_comments['comments'])} 条评论") # 保存评论数据到JSON文件 with open(f"jd_comments_{product_id}.json", "w", encoding="utf-8") as f: json.dump(all_comments, f, ensure_ascii=False, indent=2) print("评论数据已保存到文件")
四、注意事项
数据解析注意点
评论内容可能包含 HTML 标签,需要进行清洗
某些字段(如颜色、尺寸)可能为空,需要处理空值
接口返回格式可能随时变化,需要定期维护解析逻辑
进阶优化
使用异步请求库(如 aiohttp)提高爬取效率
添加数据存储(如 MySQL、MongoDB 或 CSV)
实现增量爬取(只抓取新评论)
通过上述方法,你可以获取京东商品的评论数据。实际应用中,建议根据具体需求调整爬取策略,并添加更完善的异常处理和数据存储逻辑。
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章