一、如何通過手動方式查看京東商品詳情頁面的數(shù)據(jù) ?
1.京東商品詳情 API 接口(item_get - 獲得京東商品詳情接口),京東API 接口代碼對接可以獲取到寶貝 ID,寶貝標(biāo)題,價格,優(yōu)惠價,掌柜名稱,庫存,寶貝鏈接,寶貝圖片,品牌名稱,商品詳情,詳情圖片等頁面上有的數(shù)據(jù)均可以獲取到,手動方式如下: ?
例如我們打開京東手機(jī)端或者 PC 端,搜索關(guān)鍵詞 " 新款連衣裙",隨便點(diǎn)擊一個寶貝,進(jìn)入這個商品詳情,我們就以推薦的這個商品為例,點(diǎn)擊進(jìn)入商品詳情頁面。
2.點(diǎn)擊鼠標(biāo)右鍵可以查看源代碼拿到的詳情頁面的數(shù)據(jù)參數(shù),包括標(biāo)題,圖片,商品價格,商品優(yōu)惠券,優(yōu)惠信息,庫存數(shù)量,商品詳情頁面數(shù)據(jù)等參數(shù)。 ?
二、通過封裝接口拿到整個站的商品詳情數(shù)據(jù),代碼如下:? ?
JD.item_get -獲得商品詳情數(shù)據(jù)接口? ?
1.請求方式:HTTP ?GET ?POST?
2.公共參數(shù)
名稱 | 類型 | 必須 | 描述 |
---|---|---|---|
key | String | 是 | 調(diào)用key(必須以GET方式拼接在URL中) |
secret | String | 是 | 調(diào)用密鑰 (復(fù)制v:Taobaoapi2014) |
api_name | String | 是 | API接口名稱(包括在請求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默認(rèn)yes,將調(diào)用緩存的數(shù)據(jù),速度比較快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回數(shù)據(jù)格式,默認(rèn)為json,jsonu輸出的內(nèi)容中文可以直接閱讀 |
lang | String | 否 | [cn,en,ru]翻譯語言,默認(rèn)cn簡體中文 |
version | String | 否 | API版本 (查看調(diào)用示例 ) |
3.請求參數(shù)
請求參數(shù):num_iid=10335871600
參數(shù)說明:num_iid:JD商品ID
4.請求代碼示例,支持高并發(fā)請求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;
public class Example {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(body);
out.flush();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 請求示例 url 默認(rèn)請求參數(shù)已經(jīng)URL編碼處理
String url = "https://api-gw.taobaoapi2014.cn/jd/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=10335871600";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}
5.響應(yīng)示例