Menggunakan Java Jsoup Web Scraping untuk Mengekstrak Data Situs Web dengan FreeBSD
· 2 min read · Label UnixBSD
Java adalah salah satu bahasa pemrograman yang paling populer dan paling banyak digunakan serta memiliki komunitas yang besar. Hal ini memungkinkan terciptanya layanan yang sangat terukur dan andal serta solusi ekstraksi data multi-utas. Mari kita gunakan konsep utama web scraping dengan Java dan tinjau pustaka paling populer untuk mengatur aliran ekstraksi data dari situs web dengan JSoup.
Jsoup adalah pustaka Java yang dirancang untuk bekerja dengan skrip HTML dan juga Java yang menyederhanakan pekerjaan dengan HTML dan XML. Jadi pengembang dapat dengan mudah membaca dan menganalisis data. JSoup dapat mengurai HTML dari URL, file, atau string. Ia menawarkan API yang mudah digunakan untuk pengambilan URL, penguraian data, ekstraksi, dan manipulasi menggunakan API DOM, CSS, dan metode pemilih xpath.
Ini adalah pustaka yang sangat baik untuk pengikisan web sederhana karena sifatnya yang sederhana dan kemampuannya untuk mengurai skrip HTML dengan cara yang sama seperti yang dilakukan browser sehingga Anda dapat menggunakan pemilih CSS yang umum dikenal.
Cara kerja JSoup hampir sama dengan browser modern, yaitu dengan mengimplementasikan spesifikasi WHATWG HTML5, dan melakukan parsing HTML menjadi DOM. Tidak hanya itu, JSoup memiliki beberapa kelebihan yang tidak dimiliki browser biasa.
Web scraping mengacu pada ekstraksi data dari sebuah situs web. Web scraping merupakan proses mendapatkan data dari sebuah situs web baik dalam skala besar maupun kecil. Informasi tersebut kemudian dikumpulkan dan kemudian diekspor ke dalam format yang lebih mudah dibaca oleh pengguna. Baik itu spreadsheet atau API.
Dengan menggunakan web scraping, kita dapat memperoleh data tertentu seperti gambar, tabel, posting, atau kode sumber dari seluruh konten situs web. Data yang diperoleh dapat digunakan untuk berbagai keperluan seperti pengumpulan data, penelitian, analisis, dan lainnya.
Web Scraper dapat memperoleh semua data di situs web atau blog. Untuk mendapatkan data ini, kita perlu memberikan URL situs web yang ingin kita scraping. Sebaiknya tentukan jenis data yang ingin di-scrape agar prosesnya cepat dan efisien.
Misalnya, jika kita menginginkan video atau gambar dari situs web, kita tentukan bahwa kita hanya memerlukan elemen dengan tag img untuk mengambil gambar. Ini akan menghapus semua tag img yang ditemukan di situs web dengan URL yang diberikan. Scraper web memuat semua kode HTML dari URL, meskipun beberapa scraper tingkat lanjut bahkan dapat memuat CSS dan JavaScript. Data yang diekstrak dapat disimpan dalam file excel atau CSV atau bahkan file JSON.
Jsoup adalah pustaka Java yang dirancang untuk bekerja dengan skrip HTML dan juga Java yang menyederhanakan pekerjaan dengan HTML dan XML. Jadi pengembang dapat dengan mudah membaca dan menganalisis data. JSoup dapat mengurai HTML dari URL, file, atau string. Ia menawarkan API yang mudah digunakan untuk pengambilan URL, penguraian data, ekstraksi, dan manipulasi menggunakan API DOM, CSS, dan metode pemilih xpath.
Ini adalah pustaka yang sangat baik untuk pengikisan web sederhana karena sifatnya yang sederhana dan kemampuannya untuk mengurai skrip HTML dengan cara yang sama seperti yang dilakukan browser sehingga Anda dapat menggunakan pemilih CSS yang umum dikenal.
Cara kerja JSoup hampir sama dengan browser modern, yaitu dengan mengimplementasikan spesifikasi WHATWG HTML5, dan melakukan parsing HTML menjadi DOM. Tidak hanya itu, JSoup memiliki beberapa kelebihan yang tidak dimiliki browser biasa.
- membersihkan konten yang dikirimkan pengguna terhadap daftar aman, untuk mencegah serangan XSS.
- Menemukan dan mengekstrak data, menggunakan traversal DOM atau pemilih CSS.
- Mengikis dan mengurai HTML dari URL, file, atau string.
- Menghasilkan HTML yang rapi.
- Memanipulasi elemen, atribut, dan teks HTML.
1. Apa itu Web Scraping?
Web scraping merupakan salah satu cara yang paling sederhana, efektif, efisien, dan bermanfaat untuk mengekstrak data dari situs web. Beberapa situs web mungkin berisi data berharga dalam jumlah yang sangat besar. Di sinilah web scraping dapat membantu untuk membaca dan menganalisis data.Web scraping mengacu pada ekstraksi data dari sebuah situs web. Web scraping merupakan proses mendapatkan data dari sebuah situs web baik dalam skala besar maupun kecil. Informasi tersebut kemudian dikumpulkan dan kemudian diekspor ke dalam format yang lebih mudah dibaca oleh pengguna. Baik itu spreadsheet atau API.
Dengan menggunakan web scraping, kita dapat memperoleh data tertentu seperti gambar, tabel, posting, atau kode sumber dari seluruh konten situs web. Data yang diperoleh dapat digunakan untuk berbagai keperluan seperti pengumpulan data, penelitian, analisis, dan lainnya.
Web Scraper dapat memperoleh semua data di situs web atau blog. Untuk mendapatkan data ini, kita perlu memberikan URL situs web yang ingin kita scraping. Sebaiknya tentukan jenis data yang ingin di-scrape agar prosesnya cepat dan efisien.
Misalnya, jika kita menginginkan video atau gambar dari situs web, kita tentukan bahwa kita hanya memerlukan elemen dengan tag img untuk mengambil gambar. Ini akan menghapus semua tag img yang ditemukan di situs web dengan URL yang diberikan. Scraper web memuat semua kode HTML dari URL, meskipun beberapa scraper tingkat lanjut bahkan dapat memuat CSS dan JavaScript. Data yang diekstrak dapat disimpan dalam file excel atau CSV atau bahkan file JSON.
2. Cara Instal JSoup
Agar dapat menggunakan JSoup pada server FreeBSD, pastikan server Anda telah terinstal JAVA dan Maven, karena artikel ini menggunakan Maven sebagai sistem pembuatan JSoup. Baca artikel kami sebelumnya tentang cara menginstal Maven dan Java pada FreeBSD.Repositori FreeBSD tidak menyediakan JSoup, Anda dapat menginstal JSoup dari Github. Perintah di bawah ini akan memandu Anda untuk menginstal JSoup di FreeBSD. Karena Anda telah menginstal Maven, kami menempatkan direktori JSoup di direktori Maven "/usr/local/etc/maven-wrapper/instances.d".
Kita akan menggunakan Maven sebagai alat pengikisan web. Untuk membuat proyek Maven baru, buka terminal Putty, jika Anda menjalankannya melalui Windows dan jalankan perintah berikut.
Jangan lupa, hapus seluruh isi file "/usr/local/etc/maven-wrapper/instances.d/jsoup-example/src/main/java/com/example/jsoupexample/App.java", dan ganti dengan skrip di bawah ini.
Untuk menjalankan web scraper, buka terminal Anda, navigasikan ke direktori "/usr/local/etc/maven-wrapper/instances.d/jsoup-example", dan jalankan perintah berikut.
Anda dapat melihat semua skrip dalam artikel ini secara lengkap di Github.
Contoh ini hanya menunjukkan sebagian kecil dari apa yang dapat dilakukan oleh jsoup. JSoup merupakan pilihan yang sangat baik untuk web scraping di Java. Meskipun artikel ini memperkenalkan pustaka tersebut, Anda dapat mengetahui lebih lanjut tentangnya dalam dokumentasi jsoup. Meskipun jsoup mudah digunakan dan efisien, ia memiliki kekurangan. Misalnya, ia tidak dapat menjalankan kode JavaScript, yang berarti jsoup tidak dapat digunakan untuk scraping halaman web dinamis dan aplikasi satu halaman. Dalam kasus tersebut, Anda perlu menggunakan sesuatu seperti Selenium.
Skrip di atas digunakan untuk mengonfigurasi JSoup dari Github ke server FreeBSD lokal Anda. Sekarang kita menginstal JSoup.
3. Menggunakan jsoup Web Scraping
Pengikisan web harus selalu dimulai dengan sentuhan manusia. Sebelum Anda mengikis situs web, Anda perlu memahami struktur data HTML situs web tersebut. Memahami struktur data akan memberi Anda gambaran tentang cara menelusuri tag HTML saat Anda menerapkan pengikis.Kita akan menggunakan Maven sebagai alat pengikisan web. Untuk membuat proyek Maven baru, buka terminal Putty, jika Anda menjalankannya melalui Windows dan jalankan perintah berikut.
"mvn archetype:generate -DgroupId=com.example.jsoupexample -DartifactId=jsoup-example -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false"
Edit berkas "/usr/local/etc/maven-wrapper/instances.d/jsoup-example/pom.xml", lalu hapus seluruh isinya. Ganti dengan skrip di bawah ini.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.jsoupexample</groupId>
<artifactId>jsoup-example</artifactId>
<version>1.0-SNAPSHOT</version>
<name>jsoup-example</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.jsoupexample.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package com.example.jsoupexample;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) {
for(int i = 1; i <= 4; ++i) {
System.out.println("PAGE " + i);
try {
String url = (i==1) ? "https://www.scrapingbee.com/blog" : "https://www.scrapingbee.com/blog/page/" + i;
Document document = Jsoup.connect(url)
.timeout(5000)
.get();
Elements blogs = document.getElementsByClass("p-10");
for (Element blog : blogs) {
String title = blog.select("h4").text();
System.out.println("TITLE: " + title);
String link = blog.select("a").attr("href");
System.out.println("LINK: " + link);
String headerImage = blog.selectFirst("img").attr("src");
System.out.println("HEADER IMAGE: " + headerImage);
String authorImage = blog.select("img[src*=authors]").attr("src");
System.out.println("AUTHOR IMAGE:" + authorImage);
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Jalankan web scraper dengan jar.
Anda dapat melihat semua skrip dalam artikel ini secara lengkap di Github.
Contoh ini hanya menunjukkan sebagian kecil dari apa yang dapat dilakukan oleh jsoup. JSoup merupakan pilihan yang sangat baik untuk web scraping di Java. Meskipun artikel ini memperkenalkan pustaka tersebut, Anda dapat mengetahui lebih lanjut tentangnya dalam dokumentasi jsoup. Meskipun jsoup mudah digunakan dan efisien, ia memiliki kekurangan. Misalnya, ia tidak dapat menjalankan kode JavaScript, yang berarti jsoup tidak dapat digunakan untuk scraping halaman web dinamis dan aplikasi satu halaman. Dalam kasus tersebut, Anda perlu menggunakan sesuatu seperti Selenium.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar