淘寶API系列:如何採集淘寶商品詳情頁資料?

JenniferAB發表於2023-02-23

對電商來說,抓取某些資料,再進行分析,可以有效地反映出資料在某個區間內變化情況。資料受某些因素而發生巨大的影響,也可以藉助分析的資料來規劃相關專案的後續發展。因此,如果能利用網頁爬取資料技術獲取資料並對各種資料進行統計分析,對後續淘寶的發展具有指導意義。

透過 item_get_app介面,傳入商品ID,可以抓取到APP端的商品詳情頁資料,包括商品標題、價格、原價、賣家暱稱、庫存、銷量、寶貝連結、商品備註、寶貝圖片列表、寶貝圖片、商品屬性名、商品屬性圖片列表、商品詳情、商品規格資訊、商品屬性、商品圖片、商品屬性別名、賣家資訊等資訊。

具體呼叫說明如下:

1、請求示例(程式碼展示)

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 預設請求引數已經URL編碼處理
		String url = "https://伺服器地址/taobao/item_get_app/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=520813250866";
		JSONObject json = getRequestFromUrl(url);
		System.out.println(json.toString());
	}}

2、公共引數

名稱 型別 必須 描述
key String 呼叫key(註冊)
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=520813250866

引數說明:num_iid:淘寶商品ID

4、響應引數

名稱 型別 必須 示例值 描述
item
Mix 0
獲得淘寶app商品詳情原資料
item
Mix 0 [] 商品資訊
apiStack
Mix 0 [] 價格銷量
seller
Mix 0 [] 店鋪資訊
more
Mix 0 [] 引數多不一一介紹,詳細請看介面返回


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026969/viewspace-2936546/,如需轉載,請註明出處,否則將追究法律責任。

相關文章