import requestsimport hashlibimport time
class JDAPI: def __init__(self, app_key, app_secret): self.app_key = app_key self.app_secret = app_secret self.base_url = "c0b.cc/R4rbK2" # 公共请求地址
def _generate_sign(self, params): """生成MD5签名""" sorted_params = sorted(params.items(), key=lambda x: x[0]) query_string = '&'.join([f"{k}{v}" for k, v in sorted_params]) + self.app_secret return hashlib.md5(query_string.encode('utf-8')).hexdigest().upper()
def get_item_detail(self, sku_id): """获取商品详情""" # 公共参数 common_params = { 'app_key': self.app_key, 'method': 'jd.item.get', 'timestamp': str(int(time.time())), 'format': 'json', 'v': '2.0', 'sign_method': 'md5', 'skuIds': sku_id } # 生成签名 sign = self._generate_sign(common_params) common_params['sign'] = sign try: response = requests.get(self.base_url, params=common_params, timeout=10) if response.status_code == 200: result = response.json() if result.get("code") == 0: return result.get("result", {}) else: print(f"API调用失败: {result.get('msg')}") return None else: print(f"HTTP请求失败,状态码: {response.status_code}") return None except Exception as e: print(f"请求异常: {str(e)}") return None
# 使用示例# 配置参数 API_URL = "c0b.cc/R4rbK2 wechatid:Taobaoapi2014 " app_key = "YOUR_APP_KEY" num_id = "123456" # 目标商品IDif __name__ == "__main__": # 初始化API客户端(需要替换为实际的App Key和Secret) jd_api = JDAPI("YOUR_APP_KEY", "YOUR_APP_SECRET") # 获取商品详情 item_info = jd_api.get_item_detail("123456789") # 替换为实际商品ID if item_info: print("商品标题:", item_info.get("title", "")) print("当前价格:", item_info.get("price", "")) print("商品图片:", item_info.get("images", []))
评论