Python采集京东商品评论API接口示例,json数据返回

简介: 下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析

Python采集京东商品评论API接口示例

下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析和反爬处理。

完整代码示例

python
import requests
import json
import time
import random
from urllib.parse import quote
def get_jd_comments(product_id, page=0, page_size=10):
"""
    获取京东商品评论
    :param product_id: 商品ID
    :param page: 页码(从0开始)
    :param page_size: 每页评论数
    :return: 评论数据JSON
    """
# 京东评论API URL
    url = f"https://club.jd.com/comment/productPageComments.action"
# 请求参数
    params = {
"callback": "fetchJSON_comment98",  # 回调函数名
"productId": product_id,
"score": 0,  # 0=全部,1=差评,2=中评,3=好评,5=追加评论
"sortType": 5,  # 排序方式 5=推荐排序,6=时间排序
"page": page,
"pageSize": page_size,
"isShadowSku": 0,
"fold": 1  # 1=过滤短评,0=不过滤
    }
# 请求头,模拟浏览器访问
    headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Referer": f"https://item.jd.com/{product_id}.html",
    }
try:
# 发送请求
        response = requests.get(url, params=params, headers=headers, timeout=10)
        response.raise_for_status()
# 处理回调函数包裹的JSON数据
        json_str = response.text[len("fetchJSON_comment98("):-2]
# 解析JSON数据
        comment_data = json.loads(json_str)
# 随机延迟,避免请求过于频繁
        time.sleep(random.uniform(1, 3))
return comment_data
except Exception as e:
print(f"获取评论失败: {e}")
return None
def parse_comments(comment_data):
"""
    解析评论数据
    :param comment_data: 原始评论数据
    :return: 结构化评论列表
    """
if not comment_data or comment_data.get("code") != "0":
return []
    comments = comment_data.get("comments", [])
    result = []
for comment in comments:
        item = {
"id": comment.get("id"),
"content": comment.get("content"),
"score": comment.get("score"),
"creation_time": comment.get("creationTime"),
"nickname": comment.get("nickname"),
"product_color": comment.get("productColor"),
"product_size": comment.get("productSize"),
"useful_vote": comment.get("usefulVoteCount"),
"images": [img.get("imgUrl") for img in comment.get("images", [])],
"videos": [video.get("videoUrl") for video in comment.get("videos", [])],
"after_comment": comment.get("afterUserComment", {}).get("content")
        }
        result.append(item)
return result
if __name__ == "__main__":
# 示例商品ID (iPhone 15)
    product_id = "100065474274"
# 获取第一页评论,每页10条
    comment_data = get_jd_comments(product_id, page=0, page_size=10)
if comment_data:
# 打印基本信息
print(f"商品ID: {product_id}")
print(f"总评论数: {comment_data['data'].get('totalCount')}")
print(f"好评数: {comment_data['data'].get('goodCount')}")
print(f"中评数: {comment_data['data'].get('generalCount')}")
print(f"差评数: {comment_data['data'].get('poorCount')}")
# 解析并打印评论
        comments = parse_comments(comment_data)
print("\n评论示例:")
for idx, comment in enumerate(comments[:3], 1):  # 只打印前3条作为示例
print(f"\n评论{idx}:")
print(f"用户: {comment['nickname']}")
print(f"评分: {'★' * comment['score']}")
print(f"时间: {comment['creation_time']}")
print(f"内容: {comment['content']}")
if comment['images']:
print(f"图片: {len(comment['images'])}张")
if comment['after_comment']:
print(f"追加评论: {comment['after_comment']}")
else:
print("未能获取评论数据")

JSON数据示例

以下是京东API返回的典型JSON数据结构(已格式化):

json
{
"code": "0",
"msg": "success",
"data": {
"productId": "100065474274",
"score": 4.9,
"totalCount": 50000,
"goodCount": 48000,
"generalCount": 1500,
"poorCount": 500,
"afterCount": 800,
"videoCount": 200,
"hotCommentTagStatistics": [
{
"id": "1",
"name": "物流快",
"count": 12000
},
{
"id": "2",
"name": "正品保障",
"count": 10000
}
],
"comments": [
{
"id": "123456789",
"guid": "abcdef-12345",
"content": "手机很好用,系统流畅,拍照清晰",
"creationTime": "2023-10-15 10:30:22",
"isTop": false,
"referenceId": "987654321",
"referenceName": "Apple iPhone 15",
"score": 5,
"status": 1,
"title": "非常满意",
"usefulVoteCount": 150,
"uselessVoteCount": 2,
"userImage": "misc.360buyimg.com/user/head/1.jpg",
"userLevelId": "6",
"userProvince": "北京",
"nickname": "jd_123456789",
"productColor": "黑色",
"productSize": "256GB",
"images": [
{
"id": "111111",
"imgUrl": "img10.360buyimg.com/n1/s450x450_jfs/t1/123456/1/2345/123456/5e8a1a1bE12345678/1234567890abcdef.jpg"
}
],
"afterUserComment": {
"id": 888888,
"content": "已解决您反馈的问题",
"created": "2023-10-18 09:20:30"
}
}
]
}
}


相关文章
|
1月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
1月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
1143 1
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
372 0
|
1月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
1月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
1月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
3月前
|
JSON API 数据安全/隐私保护
深度分析淘宝卖家订单详情API接口,用json返回数据
淘宝卖家订单详情API(taobao.trade.fullinfo.get)是淘宝开放平台提供的重要接口,用于获取单个订单的完整信息,包括订单状态、买家信息、商品明细、支付与物流信息等,支撑订单管理、ERP对接及售后处理。需通过appkey、appsecret和session认证,并遵守调用频率与数据权限限制。本文详解其使用方法并附Python调用示例。
|
2月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
1月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
2月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
413 152

推荐镜像

更多