- Katılım
- 9 Haziran 2025
- Mesajlar
- 66
- Çözümler
- 1
- Tepkime puanı
- 0
- Puan
- 6
- Konum
- Türkiye
- Web sitesi
- akisforum.com
C# ile Web'den Veri Çekme (Scraping) – HtmlAgilityPack Rehberi
HtmlAgilityPack Nedir?
HtmlAgilityPack, C# dilinde HTML dosyalarını DOM yapısında parçalamanı sağlayan bir kütüphanedir.
Web sitelerinden içerik çekmek (scraping) için en çok kullanılan çözümlerden biridir.
Avantajları:
- XPath ve CSS benzeri seçicilerle veri çekme
- Kırık veya hatalı HTML yapısıyla başa çıkabilme
- Oldukça hızlı ve stabil çalışma
Kütüphane Kurulumu
NuGet ile kolayca kurulur:
Örnek: Bir Haber Sitesinden Başlıkları Çekmek
XPath Kısayolları
- `//h2` → Tüm h2 etiketleri
- `//div[@class='post']` → class'ı post olan div'ler
- `//a[contains(text(),'Python')]` → İçeriğinde Python geçen linkler
Dikkat Etmen Gerekenler
- Fazla istek spam gibi algılanabilir → User-Agent kullan
- Bazı siteler bot korumalıdır → scraping engellenebilir
- Sayfa yapısı değişirse XPath bozulur → düzenli test et
Sonuç:
HtmlAgilityPack ile herhangi bir web sitesinden veri çekmek oldukça kolaydır.
İster haber başlığı, ister ürün bilgisi, ister blog içeriği — hepsi bu kütüphane ile tek satırla erişilebilir!
Daha Fazla Oku:

HtmlAgilityPack, C# dilinde HTML dosyalarını DOM yapısında parçalamanı sağlayan bir kütüphanedir.
Web sitelerinden içerik çekmek (scraping) için en çok kullanılan çözümlerden biridir.
Avantajları:
- XPath ve CSS benzeri seçicilerle veri çekme
- Kırık veya hatalı HTML yapısıyla başa çıkabilme
- Oldukça hızlı ve stabil çalışma

NuGet ile kolayca kurulur:
Kod:
Install-Package HtmlAgilityPack

C#:
using System;
using HtmlAgilityPack;
using System.Net.Http;
class Program
{
static async System.Threading.Tasks.Task Main()
{
string url = "https://siberblog.com";
HttpClient client = new HttpClient();
var response = await client.GetStringAsync(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(response);
var basliklar = doc.DocumentNode.SelectNodes("//h2/a");
if (basliklar != null)
{
foreach (var item in basliklar)
{
Console.WriteLine("📰 " + item.InnerText.Trim());
}
}
else
{
Console.WriteLine("Başlıklar bulunamadı.");
}
}
}

- `//h2` → Tüm h2 etiketleri
- `//div[@class='post']` → class'ı post olan div'ler
- `//a[contains(text(),'Python')]` → İçeriğinde Python geçen linkler

- Fazla istek spam gibi algılanabilir → User-Agent kullan
- Bazı siteler bot korumalıdır → scraping engellenebilir
- Sayfa yapısı değişirse XPath bozulur → düzenli test et

HtmlAgilityPack ile herhangi bir web sitesinden veri çekmek oldukça kolaydır.
İster haber başlığı, ister ürün bilgisi, ister blog içeriği — hepsi bu kütüphane ile tek satırla erişilebilir!

-
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
-
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.