Web Scraping: Colly Kütüphanesi ile Veri Kazıma

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18

İnternet Sizin Veritabanınız​

Her web sitesinin API'si yoktur. Bazen veriyi (örneğin döviz kurlarını, e-ticaret fiyatlarını veya haber başlıklarını) doğrudan HTML sayfasından çekmeniz gerekir. Go dünyasının en popüler, en hızlı ve zarif scraping kütüphanesi Colly'dir.

Colly Nasıl Çalışır?​

Colly, "Callback" (Geri Çağırma) mantığıyla çalışır. "Şu CSS selektörünü (örneğin .product-title) gördüğünde şu fonksiyonu çalıştır" dersiniz.

Kurulum​

go get -u github.com/gocolly/colly/v2

Örnek: Hacker News Başlıklarını Çekme​

Kod:
package main

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

func main() {// 1. Collector Oluşturc := colly.NewCollector(colly.AllowedDomains("news.ycombinator.com"),)

// 2. HTML Bulunduğunda Ne Yapılsın? (Callback)<br>// ".titleline" sınıfına sahip elementleri arıyoruz<br>c.OnHTML(".titleline &gt; a", func(e *colly.HTMLElement) {<br>&nbsp;&nbsp;&nbsp;&nbsp;link := e.Attr("href")<br>&nbsp;&nbsp;&nbsp;&nbsp;title := e.Text<br>&nbsp;&nbsp;&nbsp;&nbsp;fmt.Printf("Başlık: %s\nLink: %s\n\n", title, link)<br>})<br><br>// 3. İstek Başlamadan Önce (Loglama vb.)<br>c.OnRequest(func(r *colly.Request) {<br>&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("Ziyaret ediliyor:", r.URL)<br>})<br><br>// 4. Kazımayı Başlat<br>c.Visit("[https://news.ycombinator.com/](https://news.ycombinator.com/)")<br>
}

İleri Seviye Özellikler​

Colly sadece HTML parse etmez; form doldurup giriş yapabilir (Login), resim indirebilir, Async modunda aynı anda yüzlerce sayfayı tarayabilir ve IP ban yememek için araya rastgele bekleme süreleri (Random Delay) koyabilir.
 
Geri
Üst