Merhaba arkadaşlar, bu makalede bir web sitesinden veri çekme işlemi nasıl yapılır bunu göreceğiz.
Bunun için console uygulaması oluşturalım.
Package Manager Console’ a gelelim ve alltaki satırı yazıp enter’layalım.
Install-Package HtmlAgilityPack -Version 1.11.23
HtmlAgilityPack kütüphanesini projeye dahil ettikten sonra bir metod oluşturalım ve içerisine aşağıdaki gibi düzenleyelim.Ardından main methodunda url’i ve xpath’i belirledikten sonra SitedenVeriCek adlı methoda parametreleri gönderelim.
using HtmlAgilityPack;
using System;
using System.Net;
using System.Text;
namespace VeriCekme
{
class Program
{
static void Main(string[] args)
{
string xPath = "//*[@id='Blog1']/div[1]/article[6]/div/div/div[2]/div/div[1]/h3/a/div/div[1]";
string url = "https://webkoz.com/";
string data = SitedenVeriCek(url, xPath);
Console.WriteLine(data);
Console.ReadKey();
}
public static string SitedenVeriCek(string url, string xPath)
{
string data = "";
Uri _url = new Uri(url);
HtmlDocument doc = new HtmlDocument();
try
{
var request = (HttpWebRequest)WebRequest.Create(_url);
request.Method = "GET";
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
doc.Load(stream, Encoding.UTF8);
}
}
data = doc.DocumentNode.SelectSingleNode(xPath).InnerHtml.Trim();
}
catch (WebException ex)
{
return ex.Message.ToString();
}
return data;
}
}
}
Xpath değerini öğrenmek için, site içerisinde çekmek istediğiniz verinin üstüne sağ tıklayıp “öğeyi denetle(incele)” ye basın.Açılan bölümde seçili olarak gelen html elementine sağ tıklayın.”Copy” kısmından “Copy Xpath” seçeneğini seçin.Sonra programa gelip xpath kısmına değeri girebilirsiniz.
Xpath içerisinde çift tırnakları tek tırnağa çevirmeyi unutmayın.