Java爬虫数据获取:商品信息快速抓取

来源:这里教程网 时间:2026-03-01 18:27:41 作者:

1. 环境准备 在开始之前,确保你的开发环境已经安装了Java和以下库: Apache HttpClient:用于发送HTTP请求。 JSON.simple:用于解析JSON格式的数据。 如果你使用Maven进行项目管理,可以在pom.xml文件中添加以下依赖:

<dependencies>
    <!-- Apache HttpClient -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
    <!-- JSON.simple -->
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency></dependencies>

2. 商品数据抓取示例以下是一个简单的Java爬虫示例,用于获取商品数据:

import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.apache.http.HttpResponse;import org.json.simple.JSONObject;import org.json.simple.JSONArray;import org.json.simple.parser.JSONParser;import java.io.IOException;public class ProductScraper {
    public static void main(String[] args) {
        String url = "https://example.com/api/products"; // 替换为实际的商品API URL
        CloseableHttpClient httpClient = HttpClients.createDefault();
        try {
            HttpGet request = new HttpGet(url);
            HttpResponse response = httpClient.execute(request);
            if (response.getStatusLine().getStatusCode() == 200) {
                String responseData = EntityUtils.toString(response.getEntity());
                JSONParser parser = new JSONParser();
                JSONObject jsonResponse = (JSONObject) parser.parse(responseData);
                
                // 假设响应数据包含商品列表
                JSONArray products = (JSONArray) jsonResponse.get("products");
                for (Object productObj : products) {
                    JSONObject product = (JSONObject) productObj;
                    String name = (String) product.get("name");
                    double price = (double) product.get("price");
                    System.out.println("Product Name: " + name + ", Price: " + price);
                }
            } else {
                System.out.println("Failed to retrieve data, status code: " + response.getStatusLine().getStatusCode());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }}

在这个示例中,我们使用Apache HttpClient发送一个GET请求到 商品API的URL。然后,我们检查响应状态码以确保请求成功。如果请求成功,我们使用JSON.simple库解析JSON格式的响应数据,并遍历商品列表,打印每个商品的名称和价格。 3. 注意事项 API密钥:如果API需要认证 (如添加 TNY264278 卫星号) ,确保在请求头中包含API密钥。 异常处理:在实际应用中,你需要更完善的异常处理逻辑来处理网络错误、API限制等问题。 数据解析:确保正确解析JSON数据,特别是处理嵌套的JSON对象和数组。 用户代理:有些网站可能会阻止没有用户代理的请求,设置合适的用户代理可以模拟浏览器请求。

相关推荐