CAPSOLVER
Blog
Pengambilan Data Web dalam Golang dengan Colly

Web Scraping di Golang dengan Colly

Logo of CapSolver

Nikolai Smirnov

Software Development Lead

04-Dec-2025

Web scraping adalah metode yang digunakan untuk mengekstrak data dari situs web. Dalam Golang, perpustakaan Colly adalah alat populer untuk web scraping karena kesederhanaannya dan fitur kuatnya. Panduan ini akan membawa Anda melalui pengaturan proyek Golang dengan Colly, membangun scraper dasar, menangani skenario ekstraksi data yang kompleks, dan menyempurnakan scraper Anda dengan permintaan konkuren.

Mengatur Proyek Golang Anda

Sebelum memulai, pastikan Anda telah menginstal Go di sistem Anda. Inisialisasi proyek Anda dan ambil paket Colly dengan perintah berikut:

bash Copy
go mod init my_scraper
go get -u github.com/gocolly/colly

Ini mengatur direktori proyek Anda dan menginstal paket Colly.

Klaim Kode Bonus CapSolver Anda

Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAPN saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan bonus tambahan 5% pada setiap penambahan dana — tanpa batas.
Klaim sekarang di Dashboard CapSolver
.

Membangun Scraper Dasar

Mari kita buat scraper dasar untuk mengekstrak semua tautan dari halaman Wikipedia tertentu.

  1. Buat file baru main.go dan tambahkan kode berikut:
go Copy
package main

import (
    "fmt"
    "github.com/gocolly/colly"
)

func main() {
    c := colly.NewCollector(
        colly.AllowedDomains("en.wikipedia.org"),
    )

    c.OnHTML(".mw-parser-output", func(e *colly.HTMLElement) {
        links := e.ChildAttrs("a", "href")
        fmt.Println(links)
    })

    c.Visit("https://en.wikipedia.org/wiki/Web_scraping")
}

Kode ini menginisialisasi pengumpul Colly baru yang dibatasi pada en.wikipedia.org, lalu menyetel callback untuk menemukan dan mencetak semua tautan dalam div .mw-parser-output dari halaman tersebut.

Menyedot Data Tabel

Untuk tugas yang lebih kompleks seperti menyedot data tabel dan menulisnya ke file CSV, Anda dapat menggunakan paket encoding/csv dalam Go:

  1. Perluas main.go dengan kode berikut untuk menyedot data tabel:
go Copy
package main

import (
    "encoding/csv"
    "log"
    "os"
    "github.com/gocolly/colly"
)

func main() {
    fName := "data.csv"
    file, err := os.Create(fName)
    if err != nil {
        log.Fatalf("Tidak dapat membuat file, err: %q", err)
        return
    }
    defer file.Close()

    writer := csv.NewWriter(file)
    defer writer.Flush()

    c := colly.NewCollector()

    c.OnHTML("table.wikitable", func(e *colly.HTMLElement) {
        e.ForEach("tr", func(_ int, row *colly.HTMLElement) {
            rowData := []string{}
            row.ForEach("td", func(_ int, cell *colly.HTMLElement) {
                rowData = append(rowData, cell.Text)
            })
            writer.Write(rowData)
        })
    })

    c.Visit("https://en.wikipedia.org/wiki/List_of_programming_languages")
}

Skrip ini menyedot data tabel dari halaman Wikipedia dan menulisnya ke data.csv.

Membuat Permintaan Konkuren

Untuk mempercepat proses penyedotan, Anda dapat membuat permintaan konkuren menggunakan goroutine Go. Berikut cara menyedot beberapa halaman secara konkuren:

go Copy
package main

import (
    "fmt"
    "github.com/gocolly/colly"
    "sync"
)

func scrape(url string, wg *sync.WaitGroup) {
    defer wg.Done()
    
    c := colly.NewCollector()
    
    c.OnHTML("title", func(e *colly.HTMLElement) {
        fmt.Println("Judul ditemukan:", e.Text)
    })
    
    c.Visit(url)
}

func main() {
    var wg sync.WaitGroup
    urls := []string{
        "https://en.wikipedia.org/wiki/Web_scraping",
        "https://en.wikipedia.org/wiki/Data_mining",
        "https://en.wikipedia.org/wiki/Screen_scraping",
    }

    for _, url := range urls {
        wg.Add(1)
        go scrape(url, &wg)
    }

    wg.Wait()
}

Dalam contoh ini, kita mendefinisikan fungsi scrape yang menerima URL dan grup tunggu sebagai argumen. Fungsi ini menginisialisasi pengumpul Colly, menyetel callback untuk mencetak judul halaman, dan mengunjungi URL tersebut. Fungsi main membuat grup tunggu, mengiterasi daftar URL, dan memulai goroutine untuk setiap URL agar menyedot secara konkuren.

Dengan mengikuti langkah-langkah ini, Anda dapat membangun scraper web yang kuat dalam Golang menggunakan Colly, menangani berbagai skenario penyedotan, dan menyempurnakan kinerja dengan permintaan konkuren. Untuk tutorial lebih rinci dan penggunaan lanjutan, periksa sumber daya tentang penyedotan web dengan Go dan Colly.

Perpustakaan Penyedotan Web Lainnya untuk Go

Selain Colly, terdapat beberapa perpustakaan lain yang sangat baik untuk penyedotan web dalam Golang:

  • GoQuery: Perpustakaan ini menawarkan sintaks dan fitur yang mirip dengan jQuery, memungkinkan Anda melakukan operasi penyedotan web dengan mudah, mirip seperti yang Anda lakukan dalam jQuery.
  • Ferret: Sistem penyedotan web yang portabel, dapat diperluas, dan cepat yang dirancang untuk mempermudah ekstraksi data dari web. Ferret fokus pada ekstraksi data menggunakan bahasa deklaratif unik.
  • Selenium: Terkenal dengan kemampuan browser tanpa antarmuka, Selenium ideal untuk menyedot konten dinamis. Meskipun tidak memiliki dukungan resmi untuk Go, terdapat port yang memungkinkan penggunaannya dalam proyek Golang.

Kesimpulan

Penyedotan web adalah keterampilan yang kuat dan penting untuk mengekstrak data dari situs web secara efisien. Dengan menggunakan Golang dan perpustakaan Colly, Anda dapat membangun scraper yang kuat yang menangani berbagai skenario ekstraksi data, dari mengumpulkan tautan sederhana hingga mengekstrak data tabel yang kompleks dan meningkatkan kinerja dengan permintaan konkuren.

Dalam panduan ini, Anda belajar bagaimana:

  1. Mengatur proyek Golang dengan perpustakaan Colly.
  2. Membangun scraper dasar untuk mengekstrak tautan dari halaman web.
  3. Menangani ekstraksi data yang lebih kompleks, seperti menyedot data tabel dan menyimpannya ke file CSV.
  4. Menyempurnakan scraper Anda dengan membuat permintaan konkuren.

Dengan mengikuti langkah-langkah ini, Anda dapat menciptakan scraper web yang efektif dan efisien dalam Golang, memanfaatkan kesederhanaan dan fitur kuat Colly. Untuk penggunaan lanjutan dan tutorial rinci, eksplorasi sumber daya tambahan tentang penyedotan web dengan Go dan Colly.

FAQ

1. Apakah Colly cocok untuk pemula yang belajar penyedotan web dalam Golang?

Ya. Colly dirancang untuk sederhana dan ramah pemula sambil tetap menawarkan fitur kuat seperti pemrosesan DOM, penanganan permintaan, callback, dan konkurensi. Bahkan pengembang Go pemula dapat dengan cepat membangun scraper fungsional hanya dengan beberapa baris kode.


2. Apakah Colly dapat menyedot konten yang terstruktur seperti tabel atau daftar?

Tentu. Colly memungkinkan pemilihan node HTML tertentu dan atribut, yang membuatnya mudah untuk mengekstrak tabel, daftar, tautan, dan elemen terstruktur lainnya. Anda juga dapat menyimpan hasil langsung ke file seperti CSV atau JSON menggunakan perpustakaan standar Go.


3. Bagaimana cara mempercepat scraper web Colly Anda?

Anda dapat menggunakan goroutine Go untuk memproses beberapa halaman secara bersamaan. Dengan menjalankan scraper secara konkuren dan menyinkronkannya dengan grup tunggu, kinerja penyedotan meningkat secara signifikan—terutama untuk dataset besar atau tugas crawling multi-URL.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut

kesalahan pengambilan data web
Apa itu Kesalahan 402, 403, 404, dan 429 dalam Web Scraping? Panduan Lengkap

Menguasai penanganan kesalahan web scraping dengan memahami apa yang merupakan kesalahan 402, 403, 404, dan 429. Belajar cara memperbaiki kesalahan 403 Dilarang, menerapkan solusi pembatasan laju untuk kesalahan 429, dan menangani kode status 402 Pembayaran Diperlukan yang baru muncul.

web scraping
Logo of CapSolver

Aloísio Vítor

12-Dec-2025

Pengambilan Data Web Dengan Python
Web Scraping Dengan Python: 2026 Taktik Terbaik

Pelajari taktik pengambilan data web Python teratas untuk 2026, termasuk menangani konten JavaScript dinamis, mengelola alur otentikasi, menyelesaikan CAPTCHA, mengidentifikasi perangkap tersembunyi, meniru perilaku manusia, mengoptimalkan pola permintaan, dan mengurangi penggunaan sumber daya dalam proyek pengambilan data web skala besar.

web scraping
Logo of CapSolver

Ethan Collins

12-Dec-2025

Menyelesaikan CAPTCHA web scraping
Pengambilan Data Web Tanpa Terblokir dan Cara Mengatasi Captcha Web Scraping

Scrapping web telah menjadi teknik yang populer untuk mengekstrak data dari situs web. Namun, banyak situs web menggunakan langkah anti-scrapping, termasuk...

web scraping
Logo of CapSolver

Ethan Collins

11-Dec-2025

Penelusuran Web dan Pengambilan Data Web
Penjelajahan Web vs. Pengambilan Data Web: Perbedaan Essensial

Ketahui perbedaan penting antara web crawling dan web scraping. Pelajari tujuan mereka yang berbeda, 10 penggunaan kasus yang kuat, dan bagaimana CapSolver membantu melewati blok AWS WAF dan CAPTCHA untuk pengumpulan data yang mulus.

web scraping
Logo of CapSolver

Nikolai Smirnov

09-Dec-2025

Cara Mengatasi Captchas Saat Scrapping Web dengan Scrapling dan CapSolver
Cara Menyelesaikan Captchas Ketika Web Scraping dengan Scrapling dan CapSolver

Scrapling + CapSolver memungkinkan pengambilan data otomatis dengan ReCaptcha v2/v3 dan Cloudflare Turnstile bypass.

web scraping
Logo of CapSolver

Adélia Cruz

05-Dec-2025

Penyedotan Web dengan Selenium dan Python
Mengambil Data Web dengan Selenium dan Python | Menyelesaikan Captcha Saat Mengambil Data Web

Dalam artikel ini, Anda akan mengenal pengambilan data web menggunakan Selenium dan Python, serta mempelajari cara menyelesaikan Captcha yang terkait dalam proses untuk ekstraksi data yang efisien.

web scraping
Logo of CapSolver

Emma Foster

04-Dec-2025