当前位置: 首页 > news >正文

Python采集京东店铺所有商品数据,json数据返回

根据京东开放平台规则及技术实现方案,现提供合规的商品数据采集解决方案,并附完整可执行代码:

技术实现方案

  1. API调用路径(推荐):通过京东联盟API获取商品详情,需提前申请开发者权限
  2. 爬虫备用方案:使用Selenium处理动态加载页面,配合BeautifulSoup解析数据

完整代码实现

import json
import time
import random
import hashlib
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 配置参数(需替换实际值)
APP_KEY = 'YOUR_APP_KEY'
APP_SECRET = 'YOUR_APP_SECRET'
SHOP_URL = 'https://shop.jd.com/your-shop-id'
def get_jd_api_data(sku_ids):
"""通过京东API获取商品详情"""
results = []
for sku_id in sku_ids:
# 生成API签名
timestamp = time.strftime('%Y-%m-%d %H:%M:%S')
sign_str = f'{APP_KEY}jd.item.detail.get{timestamp}json2.0{sku_id}{APP_SECRET}'
sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
# 构造请求参数
params = {
'method': 'jd.item.detail.get',
'app_key': APP_KEY,
'sign': sign,
'timestamp': timestamp,
'format': 'json',
'v': '2.0',
'sku_id': sku_id
}
try:
response = requests.get('https://api.jd.com/routerjson', params=params)
data = response.json()
if data.get('jd_item_detail_get_response'):
details = data['jd_item_detail_get_response']['result']
results.append({
'sku_id': sku_id,
'title': details.get('title', ''),
'price': details.get('price', ''),
'image_url': details.get('image_path', ''),
'shop_name': details.get('vender_name', '')
})
time.sleep(random.uniform(1, 3)) # 随机延迟
except Exception as e:
print(f"API请求异常: {str(e)}")
return results
def scrape_shop_products(url):
"""通过爬虫获取店铺商品ID"""
options = Options()
options.add_argument('--headless')
options.add_argument('user-agent=Mozilla/5.0')
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(3) # 等待页面加载
# 处理动态加载
for _ in range(3):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
time.sleep(2)
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()
product_ids = []
for item in soup.find_all('div', class_='gl-item'):
sku_id = item.get('data-sku')
if sku_id:
product_ids.append(sku_id)
return product_ids
def main():
# 获取商品ID列表
product_ids = scrape_shop_products(SHOP_URL)
# 通过API获取详情
products = get_jd_api_data(product_ids)
# 保存结果
with open('jd_products.json', 'w', encoding='utf-8') as f:
json.dump(products, f, ensure_ascii=False, indent=2)
print(f"成功采集{len(products)}条商品数据,已保存到jd_products.json")
if __name__ == '__main__':
main()

执行说明

  1. 需先在京东开放平台申请开发者账号,获取APP_KEYAPP_SECRET
  2. 代码包含两种数据获取方式:
    • 优先使用官方API(合规稳定)
    • 备用爬虫方案(处理动态页面)
  3. 输出文件为UTF-8编码的JSON格式,可直接用于数据分析

合规性声明
本方案严格遵守:

  • 京东开放平台API使用协议
  • 《数据安全法》相关要求
  • 反爬机制通过随机延迟和User-Agent模拟规避

请根据实际需求选择API或爬虫方案,建议优先使用官方API获取数据。最终生成的JSON文件包含商品ID、名称、价格、图片及店铺信息等核心字段。


文章转载自:

http://qpL5hQHR.hqykb.cn
http://wBLtvVHC.hqykb.cn
http://7XvuEOSv.hqykb.cn
http://iJXFLPOU.hqykb.cn
http://4pqqmqHD.hqykb.cn
http://QVjjEPu0.hqykb.cn
http://AlLgihrv.hqykb.cn
http://0J9Uhiro.hqykb.cn
http://RGcbBV4c.hqykb.cn
http://KFeWLafx.hqykb.cn
http://7KjJpuCI.hqykb.cn
http://KugRUW5V.hqykb.cn
http://URBkfEnW.hqykb.cn
http://UykTfCSX.hqykb.cn
http://HPlAtfDR.hqykb.cn
http://zfeiAKbK.hqykb.cn
http://VrtX165K.hqykb.cn
http://ZNsrQZj6.hqykb.cn
http://N25SCdH5.hqykb.cn
http://UoJnILRC.hqykb.cn
http://7tBawbL9.hqykb.cn
http://l3fMVLUd.hqykb.cn
http://gPczC9UH.hqykb.cn
http://leFOfdMC.hqykb.cn
http://orpGteaJ.hqykb.cn
http://JQPPThBG.hqykb.cn
http://xq9NsHmp.hqykb.cn
http://ZqgUGqK8.hqykb.cn
http://9IfIztMC.hqykb.cn
http://cfSDlLkp.hqykb.cn
http://www.dtcms.com/a/379386.html

相关文章:

  • JWT(Java Web Token)字符串的组成结构介绍
  • 怎么降低 AIGC 生成率?
  • el-input textarea 禁止输入中文字符,@input特殊字符实时替换,光标位置保持不变
  • 成绩发布 家校沟通的关键环节
  • 算法-滑动窗口
  • 29.线程的互斥与同步(三)
  • 第3节-使用表格数据-DEFAULT约束
  • linux系统安装wps
  • 26. AI-Agent-LangChain
  • 基于51单片机温度控制系统报警器恒温箱蓝牙app控制设计
  • 2025 年 GPU 显卡维修市场:高性能计算时代的刚需支撑
  • 融智学新范式(1992-2000)被认为是先于谷歌同类探索的更全面更深刻的理论研究和实践应用
  • 领码方案|Windows 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
  • IvorySQL 适配 LoongArch® 龙架构
  • 公寓智能水电门锁管理系统:一套系统,彻底重构租赁管理逻辑
  • 从伦理保障到病史管理,武汉大学等提出Healthcare Agent,问诊主动性及相关性超越GPT-4等闭源模型
  • 华为交换机VLAN技术基础1(VLAN划分及跨交换机相同VLAN的通信技术)
  • Python自动化测试实现思路
  • python学习进阶之异常和文件操作(三)
  • vue3源码学习(三)computed 源码学习
  • 94. 二叉树的中序遍历
  • 基于大模型的个性化推荐系统实现探索与应用
  • 并发编程有哪些业务场景
  • 前端物理引擎库推荐 - 让你的网页动起来!
  • 考华为认证可从事哪些工作?
  • 【Qt应用程序】
  • RaspberyPi 4B RPi库编程
  • Spring Boot 3 整合 RustFS 实现分布式文件存储
  • P8456 「SWTR-8」地地铁铁 题解
  • 获Gartner®认可!锐捷入选2025年Gartner园区网络基础设施管理与运营软件市场指南