YUKARI

Web Sitesinden Veri Çekme

Web Sitesinden Veri Çekme

Herhangi bir web sitesinden istediğiniz bir veriyi nasıl çekebileceğimizi anlatacağım.Bu işlemi yapabilmek için C# İle String işlemleri konusunu biraz incelemeniz gerekiyor.Bu makalede kullanacağım kodlar şunlar;

IndexOf  : Bu fonksiyon, web sitesinden çekeceğimiz verinin başlangıç noktasını almamıza yarıyor.

Örnek kullanım :
String.IndexOf("başlangıçkelimesi");

Substring : Bu fonksiyon yazı içindeki başlangıç noktasını ve uzunluğunu belirtmiş olduğumuz aralığı size verir.İkinci parametreyi yazmazsanız başlangıç noktasını belirttiğiniz yerden String i sonuna kadar okur ve geriye tekrar string olarak döndürür.

Örnek Kullanım :

string cumle  = "Merhabalar kodarsivi.com'a hoşgeldiniz.";
string cumle1 =  cumle.Substring(12);

 

cumle1'in değeri "kodarsivi.com'a hoşgeldiniz" oldu.

İlk öncelikle sayfamıza iki tane sınıf ekleyeceğiz;

using System.Net;
using System.Text;

 

Bu iki sınıfı ekledikten sonra kodlarımızı yazmaya başlayabiliriz.

Uri siteUri = new Uri("http://www.siteadi.com");
WebRequest wr = WebRequest.Create(siteUri);
WebResponse wer = wr.GetResponse();
Stream strX = wer.GetResponseStream();
StreamReader strR = new StreamReader(strX, Encoding.GetEncoding("windows-1254"));
string icerik = strR.ReadToEnd();

 

Bu kodlarla siteadi.com daki bilgileri ( kaynak kodunu ) içerik adındaki Stringe atadık.Diyelimki sayfadaki haber başlığını çekmek istiyoruz.

int baslikbas = icerik.IndexOf("<h1>");
int baslikson = icerik.IndexOf("</h1>");
string basliksonuc = icerik.Substring(baslikbas, baslikson);
Label1.Text = basliksonuc; 

 

Yukarıdakı işlemde baslikbas adında bir integer tanımladık ve bu bizim siteden alacağımız verinin başlangıç noktasını belirtiyor.baslikson ise alacağımız verinin bitiş noktasını belirliyor.En sonundada Label1.Text e sonucu atıyorum ve bu Label1 i web sayfamda istediğim bir yere koyduğumda siteadi.com dan gelen başlığı görüntülemiş oluyorum.Burda size biraz karışık gelmiş olabilir ama siz kendinize bir site belirleyin ve o siteden istediğiniz bir veriyi almaya çalışın.İlk başta direk alamayabilirsiniz yarım yamalak olabilir ama biraz kurcalayarak sonuca varabilirsiniz.Bu yazdığım kodlar sadece bir başlangıç bunu geliştirmek sizin elinizde.

Başka bir makalede görüşmek dileğiyle

 

15. November 2008 02:58 by Administrator | Comments (11) | Permalink

Comments

bkalender bkalender
başka bir siteden veri çekme işini html de nasıl yapabiliriz, başka bir sitenin veri tabanına bağlanmayı nasıl yapabiliriz, yardımcı olurmusunuz..
1/29/2009 6:07:10 PM #
arkadaşım dediğin gibi h1 taglarında problem yaşamıyoruz oluyor ama title tagları arasında bi ton kod geliyor onuda geçtim örneğin bir td etiketi var id si ile belirttiğimde o da olmuyor daha gelişmiş bir şey varmı acaba bu kod biraz dengesiz çalışıyor galiba tüm sayfayı bi değişkene atıyorum bu değişkenden istediğim bilgileri elde etmem için regex gibi bir şey le filtre mi yapmalıyım yoksa
8/27/2009 11:02:42 AM #
Fatih Fatih
Merhaba,

Sahibinden,com dan fiyat bilgisi çekmek istiyorum. Nasıl olabilir? Yardımcı olabilir misiniz?
3/20/2010 7:27:16 PM #
nehir nehir Turkey
        string basliksonuc = icerik.Substring(baslikbas,baslikson);
denedım ve  burda hata verıyor bende neden olabılır sızce??
4/10/2010 3:31:59 AM #
nehir nehir Turkey
string basliksonuc = icerik.Substring(baslikbas, baslikson);
denedım ama burada hata veriyor yardımcı olurmusunuz
4/10/2010 4:58:59 AM #
Ne hatası veriyor, hatayı söylersen yardımcı olabiliriz..
4/10/2010 9:33:35 AM #
nehir nehir Turkey
tesekkur ederım hallettımSmile
4/11/2010 7:51:02 AM #
cheyloq cheyloq Turkey
Merhaba benim çok önemli bir sorunum var diyelim ki sayfada birçok <title></title> tagı var ve ben hepsini birden çekip listboxa eklemek istiyorum bunun için nasıl bir kod kullanabilirim? Veya hepsi olmasa da ilk <title> tagını değil de ikincisini çekmek istiyorum, nasıl yapabilirim?
6/17/2010 7:20:51 PM #
ben img tagının arasındaki kodla resimi göstermek istiyorum ama sitede birden çok img tagı var nasıl hallederiz onu
6/20/2010 1:37:54 AM #
c# ile  for dongüsünü kullanarak bütün <title> <img> taglarını çekebilir ve daha sonra istediğinizi kullanabılırsınız.
7/1/2010 12:23:23 AM #
nasıl olacak bu pek anlamadım :S
7/1/2010 2:16:34 AM #

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Etiket Bulutu

Yazar Hakkında

Bu site görüşlerin paylaşıldığı kişisel bir blogdur. Site içeriğinden meydana gelebilecek sorunlardan site sahibi sorumlu değildir.Sitede yazılan her yazı tarafımca yazılmış olup, izinsiz veya link verilmeden alıntı yapılamaz. Yorumlar site sahibi tarafından onaylandıktan sonra yayınlanacaktır.

©KodArsivi.Net