Rumah >Java >javaTutorial >Menggunakan JSoup untuk mengikis Web dalam pembangunan API Java

Menggunakan JSoup untuk mengikis Web dalam pembangunan API Java

王林
王林asal
2023-06-17 23:49:381267semak imbas

Dengan pertumbuhan pesat maklumat Internet, semakin banyak aplikasi perlu mendapatkan data yang berkaitan daripada halaman Web. JSoup ialah penghurai HTML Java yang boleh mengekstrak dan memanipulasi data dengan mudah daripada halaman web. Dalam pembangunan API Java, JSoup ialah alat yang penting dan biasa digunakan. Artikel ini akan memperkenalkan cara menggunakan JSoup untuk mengikis web.

1. Pengenalan dan penggunaan asas JSoup

1 Pengenalan JSoup

JSoup ialah penghurai HTML Java, pembangun boleh memperkenalkannya ke dalam projek melalui Maven , cuma tambah kebergantungan berikut:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.2</version>
</dependency>

2. Penggunaan asas

Menggunakan JSoup memerlukan terlebih dahulu menghuraikan kandungan halaman HTML ke dalam objek Document, dan kemudian menggunakan objek ini untuk mendapatkan kandungan dalam halaman pelbagai elemen. Berikut ialah contoh penggunaan asas JSoup:

String url = "https://www.baidu.com/";
Document document = Jsoup.connect(url).get(); // 通过 URL 加载页面

// 获取页面标题
String title = document.title();

// 获取页面所有超链接
Elements links = document.select("a[href]");

// 循环遍历页面中的所有链接
for(Element link: links){
    String linkHref = link.attr("href");
    String linkText = link.text();
}

2. Gunakan JSoup untuk merangkak Web

1 Dapatkan maklumat halaman melalui URL

Kaedah menggunakan JSoup Ya Dapatkan maklumat halaman melalui alamat URL yang ditentukan, seperti yang ditunjukkan di bawah: connect(url).get()

String url = "https://www.baidu.com/";
Document document = Jsoup.connect(url).get();

2. Menghuraikan elemen HTML

Mengikut struktur halaman, gunakan kaedah

untuk mendapatkan dengan cepat elemen yang diperlukan. Berikut ialah contoh penggunaan JSoup untuk mendapatkan semua pautan: select()

Elements links = document.select("a[href]");

for(Element link: links){
    String linkHref = link.attr("href");
    String linkText = link.text();
    System.out.println(linkHref + " , " + linkText);
}

    Penapisan
Menggunakan sintaks pemilih, anda boleh mendapatkan elemen dalam halaman yang memenuhi syarat yang ditetapkan. Sebagai contoh, gunakan kod berikut untuk mendapatkan semua elemen input dengan kelas "s_ipt":

Elements inputs = document.select("input[class=s_ipt]");

Sintaks pemilih yang disokong juga termasuk: pemilih teg, pemilih kelas, pemilih ID, pemilih atribut dan pemilih pemilihan gabungan, pseudo- pemilih, dsb.

4. Pemprosesan acara

JSoup boleh mengendalikan acara pada halaman dengan mudah. Sebagai contoh, anda boleh menggunakan kod berikut untuk mendapatkan elemen input yang diperlukan dan mengikat pendengar acara kepadanya:

Element input = document.select("input[type=text").first();

input.attr("oninput", "console.log('input value has changed')");

5 Serahkan borang

JSoup juga boleh membantu kami menyerahkan borang. Sebagai contoh, anda boleh menggunakan kod berikut untuk melengkapkan penyerahan ke kotak carian Baidu:

String url = "https://www.baidu.com/s";
String keyword = "Java";
Document document = Jsoup.connect(url)
                        .data("wd", keyword)
                        .post();

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan JSoup untuk merangkak web, dan penggunaan asas JSoup. Gunakan JSoup untuk mendapatkan elemen halaman, penapis, pemegang acara, serahkan borang, dsb. Sudah tentu, apabila menggunakan JSoup, anda perlu memberi perhatian untuk mematuhi undang-undang, peraturan dan etika yang berkaitan, dan anda tidak boleh mendapatkan maklumat orang lain dengan cara yang menyalahi undang-undang dan tatatertib.

Atas ialah kandungan terperinci Menggunakan JSoup untuk mengikis Web dalam pembangunan API Java. 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