首页 > 大数据 > 数据分析 > 实战演练:利用京东API一键抓取商品详情
为了帮助您实现京东商品详情抓取,以下是分步骤的技术实现方案(需自行申请API权限):
pythonimport requestsimport hashlibimport timeimport jsondef get_jd_product_detail(sku_id):# 基础参数配置api_url = "https://api.jd.com/routerjson"method = "jingdong.ware.product.detail.get"timestamp = time.strftime("%Y%m%d%H%M%S", time.localtime())# 参数配置params = {"method": method,"app_key": "YOUR_APP_KEY","access_token": "YOUR_ACCESS_TOKEN","timestamp": timestamp,"format": "json","v": "2.0","sku_id": sku_id,"fields": "name,price,imagePath,weight,brandName,category"}# 生成签名sign_str = f"{app_secret}access_token{params['access_token']}app_key{params['app_key']}fields{params['fields']}method{params['method']}sku_id{params['sku_id']}timestamp{params['timestamp']}v{params['v']}{app_secret}"params['sign'] = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()# 发送请求response = requests.get(api_url, params=params)result = response.json()# 解析数据if result.get('code') == '0':product = result['response']['product']return {"商品名称": product.get('name'),"京东价": product.get('price'),"商品重量": product.get('weight'),"品牌": product.get('brandName'),"主图地址": f"https://img10.360buyimg.com/n1/{product.get('imagePath')}","分类": product.get('category')}return None# 使用示例product_info = get_jd_product_detail("100012014970") # 替换为实际商品IDprint(json.dumps(product_info, ensure_ascii=False, indent=2))
python# 保存到CSV示例import csvdef save_to_csv(data_list):with open('jd_products.csv', 'a', newline='', encoding='utf-8-sig') as f:writer = csv.DictWriter(f, fieldnames=data_list[0].keys())if f.tell() == 0:writer.writeheader()writer.writerows(data_list)# 批量获取示例sku_ids = ["100012014970", "100008348542"] # 商品ID列表all_products = []for sku in sku_ids:product = get_jd_product_detail(sku)if product:all_products.append(product)time.sleep(0.5) # 遵守访问间隔要求save_to_csv(all_products)
建议开发前仔细阅读《京东联盟API开发文档》,特别注意接口的调用限制和字段说明。如需高频访问,建议联系京东商务合作团队申请企业级权限。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3094092/ ,如需转载,请注明出处,否则将追究法律责任。