Rumah  >  Artikel  >  Java  >  Amalan mendalam: Perkongsian teknologi dan pengalaman perangkak Java utama yang boleh diamalkan

Amalan mendalam: Perkongsian teknologi dan pengalaman perangkak Java utama yang boleh diamalkan

WBOY
WBOYasal
2023-12-26 15:27:381109semak imbas

Amalan mendalam: Perkongsian teknologi dan pengalaman perangkak Java utama yang boleh diamalkan

Amalan perangkak Java: perkongsian teknologi dan pengalaman utama untuk menerapkan apa yang telah anda pelajari

Pengenalan: Dengan perkembangan pesat Internet, teknologi perangkak telah menjadi alat penting untuk pemerolehan maklumat dan analisis data. Artikel ini akan memperkenalkan teknologi utama dan perkongsian pengalaman perangkak Java, dan menyediakan contoh kod khusus untuk membantu pembaca menguasai dan menggunakan teknologi perangkak dengan lebih baik.

1. Konsep dan prinsip asas perangkak

Perangkak ialah program yang secara automatik boleh mendapatkan data rangkaian dan menganalisisnya. Ia mensimulasikan tingkah laku penyemakan imbas manusia, mengakses halaman web dan menghuraikan data di dalamnya. Prinsip asasnya ialah menghantar permintaan HTTP, mendapatkan data HTML yang dikembalikan oleh pelayan, dan kemudian menggunakan parser untuk mengekstrak maklumat yang diperlukan.

2. Perkongsian teknologi utama dan pengalaman perangkak

  1. Permintaan dan tindak balas HTTP

Perangkak perlu menghantar permintaan HTTP terlebih dahulu untuk mendapatkan data HTML halaman web. Menggunakan Java, anda boleh menghantar permintaan GET atau POST melalui kelas alat seperti HttpURLConnection atau HttpClient, dan mendapatkan data respons yang dikembalikan oleh pelayan. Berikut ialah contoh menggunakan HttpURLConnection untuk menghantar permintaan GET:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class Spider {
    public static void main(String[] args) throws IOException {
        String url = "https://www.example.com";
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setRequestMethod("GET");
        connection.setConnectTimeout(5000);
        connection.setReadTimeout(5000);
        
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        
        reader.close();
        connection.disconnect();
        
        System.out.println(response.toString());
    }
}
  1. HTML parser

HTML parser digunakan untuk menghuraikan data HTML halaman web dan mengekstrak maklumat yang diperlukan. Pustaka penghuraian HTML yang biasa digunakan dalam Java termasuk jsoup, HtmlUnit, dsb. Berikut ialah contoh penggunaan jsoup untuk menghuraikan data HTML:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Spider {
    public static void main(String[] args) throws IOException {
        String url = "https://www.example.com";
        Document document = Jsoup.connect(url).get();
        
        Elements elements = document.select(".class-name");
        for (Element element : elements) {
            String content = element.text();
            System.out.println(content);
        }
    }
}
  1. Storan Data

Data yang diperolehi oleh perangkak biasanya perlu disimpan dan dianalisis. Dalam Java, data boleh disimpan menggunakan pangkalan data (seperti MySQL, MongoDB, dll.), fail (seperti Excel, CSV, dll.) atau memori (seperti Senarai, Peta, dll.). Berikut ialah contoh penyimpanan data ke dalam pangkalan data MySQL:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Spider {
    public static void main(String[] args) throws SQLException {
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password");
        PreparedStatement statement = connection.prepareStatement("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
        
        // 假设从网页中获取到的数据存储在dataList中
        for (Data data : dataList) {
            statement.setString(1, data.getField1());
            statement.setString(2, data.getField2());
            statement.executeUpdate();
        }
        
        statement.close();
        connection.close();
    }
}

3. Ringkasan

Dengan mempelajari dan mengaplikasi teknologi crawler, kita boleh mendapatkan pelbagai data dengan mudah di Internet dan menjalankan analisis dan aplikasi selanjutnya. Artikel ini memperkenalkan teknologi utama dan perkongsian pengalaman perangkak Java, termasuk pengetahuan tentang permintaan dan respons HTTP, penghurai HTML dan storan data. Saya berharap dengan membaca artikel ini, pembaca dapat menguasai dan menggunakan teknologi crawler dengan lebih baik untuk merealisasikan keperluan mereka sendiri.

Atas ialah kandungan terperinci Amalan mendalam: Perkongsian teknologi dan pengalaman perangkak Java utama yang boleh diamalkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn