以下是使用 Python 通过 API 批量抓取 商品分类和公司档案信息数据的一般步骤:
公共参数
封装好的请求URL地址获取API测试账号。
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 |
此API目前支持以下基本接口:
响应参数
Version: Date:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
num_iid | Bigint | 0 | 60840463360 | 商品ID |
title | String | 0 | 穿上灰色男士日常都市步行鞋 | 商品标题 |
desc_short | String | 0 | 商品简介 | |
price | String | 0 | 47.70 | 价格 |
nick | String | 0 | cn1522808546pkux | 掌柜昵称 |
num | String | 0 | 999 | |
min_num | String | 0 | 2 | |
detail_url | String | 0 | https://www.alibaba.com/product-detail/Reebaby-Hot-Sell-Group-0-with_60840463360.html | 商品链接 |
pic_url | String | 0 | //sc01.alicdn.com/kf/HTB1GHVXaPvuK1Rjy0Faq6x2aVXa7.jpg | 商品图片 |
desc | String | 0 | ||
item_imgs | Mix | 0 | [{"url": "//sc02.alicdn.com/kf/HTB1ta_basfrK1RjSszcq6xGGFXaA/China-Factory-Outdoor-Driving-Casual-Shoes-Men.jpg"}] | 商品图片列表 |
props_name | String | 0 | "191288010:-1:颜色:海军;191288010:3331185:颜色:白色; | 商品属性名 |
prop_imgs | Mix | 0 | {"prop_img": ["properties": "191288010:3851110","url": "//sc01.alicdn.com/kf/HTB1CnsUasfrK1Rjy1Xdq6yemFXag.jpg_250x250.jpg"]} | 商品属性图片列表 |
props | Mix | 0 | {"name": "产地","value": "中国"} | 属性 |
skus | Mix | 0 | {sku [[]]} | 商品规格信息列表 |
priceRange | Mix | 0 | [2,47.7] | 价格区间 |
props_list | Mix | 0 | ["191288010:-1": "颜色:海军"] | 商品属性列表 |
seller_info | Mix | 0 | {"nick": "cn1522808546pkux", "title": "Guangzhou Gull Road Trade Co., Ltd.", "zhuy": "https://hotpotato.en.alibaba.com/", "shop_name": "Guangzhou Gull Road Trade Co., Ltd." } | 卖家信息 |
error | String | 0 | 错误信息 | |
props_img | Mix | 0 | ["191288010:3851110": "//sc01.alicdn.com/kf/HTB1CnsUasfrK1Rjy1Xdq6yemFXag.jpg_250x250.jpg"] | |
currency_code | String | 0 | USD | |
language_code | String | 0 | en | |
property_alias | String | 0 | 商品属性别名 | |
sales | String | 0 | 销量 | |
desc_img | Mix | 0 | ["//u.alicdn.com/js/5v/esite/img/img-placeholder.png"] | 详情图片 |
shop_item | Mix | 0 | [] | |
relate_items | Mix | 0 | [] |
抓取公司档案信息数据
抓取公司档案信息数据的步骤与抓取商品分类类似,但具体的 API 接口和参数可能不同:
- 申请 API 权限并获取密钥:同商品分类的步骤 1。
- 查看 API 文档:了解获取公司档案信息数据的 API 接口、所需参数以及返回值的格式与内容。
- 构建请求:
- 确定请求 URL 和必要的参数,如公司 ID 等。
- 根据 API 要求设置其他可能的参数,如
appkey
、timestamp
(时间戳)等,并进行相应的签名计算(如果 API 要求)。签名计算通常涉及将参数按照一定规则排序、拼接,然后使用密钥进行加密等操作,具体计算方法需参考 API 文档。
- 发送请求:使用
requests
库发送经过签名处理后的请求。 - 处理响应:
- 获取响应数据并解析 JSON。
- 从 JSON 中提取公司档案的相关信息,如公司名称、注册地址、联系方式等。
- 将数据存储到合适的存储介质中。
以下是一个简单的示例代码框架(假设已经实现了签名计算函数calculate_signature
):
import requests
appkey = "your_appkey"
secretkey = "your_secretkey"
company_id = "target_company_id"
# 构建请求 URL
url = f"https://api.1688.com/xxx/company_info_get?appkey={appkey}"
# 设置请求参数,包括公司 ID 和签名等
params = {
"company_id": company_id,
"timestamp": "current_timestamp", # 替换为实际的当前时间戳
"sign": calculate_signature(params, secretkey) # 计算签名
}
# 发送请求
response = requests.get(url, params=params)
# 处理响应
if response.status_code == 200:
data = response.json()
# 解析 JSON 数据并提取公司档案信息
company_name = data["company_name"]
print(f"公司名称: {company_name}")
else:
print(f"请求失败,状态码: {response.status_code}")
请注意:
- 实际的 API 接口地址、参数和返回值可能会因 平台的更新而有所变化,所以在开发过程中一定要参考最新的 API 文档。
- 遵守 平台的使用规则和限制,避免因违规操作导致账号被封禁等问题。