业务前景
作为全球最大的 B2C 电子商务平台之一,拼多多平台提供了丰富的商品资源,吸引了大量的全球买家和卖家。为了方便开发者接入拼多多平台,拼多多平台提供了丰富的 API 接口,其中商品详情接口是非常重要的一部分。大家有探讨稳定采集拼多多整站实时商品详情数据接口,通过该接口开发者可以更好地了解商品的情况,商品详情详细信息查询,数据参数包括:获取商品列表主图、价格、促销价,销量,库存,标题,sku,优惠券,促销信息,sku图片,sku属性,详情属性等页面上有的数据完整解决方案帮助买家更准确地进行商品选购。这个引起了我对技术挑战的兴趣。目前,自己做了压测,QPS 高、出滑块概率极低,API 整体稳定,可满足商品分析,竞品分析,品牌监控,商品搬家,商品上传,商城建设,淘宝客,erp 选品,店铺同步,CID 店铺订单回传接口等业务场景的性能需求。
采集场景
打开拼多多商品详情页(实例网址:https://mobile.yangkeduo.com/goods1.html?goods_id=1620002566),采集点击不同的参数(颜色、版本等)后得到的实时数据(商品编号、价格、主图链接等字段会随着参数变化而变化)。
采集字段
商品标题、商品价格、商品图片、商品促销信息、商品优惠价、商品sku图片、商品视频、商品销量、商品库存、商家昵称、店铺昵称、掌柜昵称、商品详情描述等页面上有的数据均可以拿到。
采集结果
采集结果可导出为Excel、CSV、HTML、数据库等多种格式。导出为Excel示例:
Pinduoduo.item_get_app-获得拼多多商品详情原数据接口展示
1.请求方式:HTTP POST GET
2.公共参数:
名称 | 类型 | 必须 | 描述 |
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版本 |
3.请求参数
请求参数:num_iid=
参数说明:num_iid:淘宝商品ID
4.请求代码示例,支持高并发请求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)
#include<iostream>
#include<string>
#include<curl/curl.h>
using namespace std;
static size_t Data(void *ptr, size_t size, size_t nmemb, string *stream)
{
std::size_t realSize = size *nmemb;
auto *realPtr = reinterpret_cast<char *>(ptr);
for (std::size_t i=0;i<realSize;++i) {
*(stream) += *(realPtr + i);
}
return realSize;
}
int main(){
CURL *curl;
CURLcode result;
string readBuffer;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://api-gw.Taobaoapi2014.cn/pinduoduo/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=1620002566");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
result = curl_easy_perform(curl);
if(result == CURLE_OK) {
cout<<readBuffer<<endl;
}else{
cerr<<"curl_easy error:"<<curl_easy_strerror(result)<<endl;
}
curl_easy_cleanup(curl);
}
return 0;
}
5.响应示例
6.错误码报错说明