Java基於API介面爬取商品資料

Noah_WB發表於2023-10-23

隨著網際網路技術的發展,越來越多的電商平臺開始提供API介面,以便開發者可以更方便地獲取商品資料。Java作為一種流行的程式語言,可以用於編寫程式來呼叫這些API介面,從而獲取商品資料。本文將介紹如何使用Java基於API介面爬取商品資料,包括請求API、解析JSON資料、儲存資料等步驟,並提供相應的程式碼示例。

一、請求API

要使用Java呼叫API介面,可以使用Java內建的URLConnection類或第三方HTTP庫,如Apache HttpClient或OkHttp。以下是使用Java內建的URLConnection類請求API的示例程式碼:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class APICaller {
    public static String callAPI(String apiUrl) {
        try {
            URL url = new URL(apiUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setRequestProperty("Accept", "application/json");
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                StringBuilder response = new StringBuilder();
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                reader.close();
                return response.toString();
            } else {
                return null;
            }
        } catch (Exception e) {
            return null;
        }
    }
}

以上程式碼中,我們使用Java內建的URLConnection類來建立HTTP連線,併傳送GET請求。我們設定請求頭Accept為application/json,表示我們希望接收JSON格式的資料。如果請求成功,我們讀取響應流並將其轉換為字串返回。如果請求失敗,則返回null。

二、解析JSON資料

當我們從API介面獲取到JSON格式的資料後,需要使用JSON解析庫將其轉換為Java物件或字串。以下是使用Google的Gson庫解析JSON資料的示例程式碼:

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.Map;
public class JSONParser {
    public static Map<String, String> parseJSON(String jsonString) {
        JsonParser parser = new JsonParser();
        JsonElement jsonElement = parser.parse(jsonString);
        JsonObject jsonObject = jsonElement.getAsJsonObject();
        Gson gson = new Gson();
        Map<String, String> map = gson.fromJson(jsonObject, Map.class);
        return map;
    }
}

以上程式碼中,我們使用Gson庫將JSON字串轉換為JsonElement物件,然後將其轉換為JsonObject物件。最後,我們使用Gson庫將JsonObject物件轉換為Map物件,以便後續操作。如果JSON資料格式比較複雜,可以定義對應的Java類來進行解析。

三、儲存資料

當我們解析完JSON資料後,需要將資料儲存到資料庫或檔案中,以便後續使用。以下是使用Java將資料儲存到MySQL資料庫的示例程式碼:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;
```java

以上程式碼中,我們使用JDBC連線到MySQL資料庫,並將資料儲存到指定的表中。在實際使用中,需要根據具體的資料庫型別和表結構來編寫相應的SQL語句。另外,也可以使用ORM框架如Hibernate或MyBatis來簡化資料庫操作。

四、完整示例程式碼

以下是一個完整的Java程式,用於基於API介面爬取商品資料並儲存到MySQL資料庫中:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;   public class ProductCrawler {   public static void main(String[] args) {       String apiUrl = "{           // 請求API介面獲取商品資料           String jsonString = APICaller.callAPI(apiUrl);           // 解析JSON資料           Map<String, String> productMap = JSONParser.parseJSON(jsonString);           // 儲存資料到MySQL資料庫           Connection connection = DriverManager.getConnection(jdbcUrl, username, password);           String sql = "INSERT INTO products



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

相關文章