C# ile Image Crawler Uygulaması
Daha önce yazdığımız C# ile WebCrawler Uygulamasına ek olarak, bu sefer, sayfadaki resimleri bulup, ekranda gösteren bir uygulama yazacağız.
Uygulamamız, bir web sayfasına bağlacak, sayfadaki img taglarının src değerlerini bir diziye dolduracak ve bu diziyi ekranda gösterecek. Dizi’den bir satır seçildiğinde, ilgili resmi ekrana getirecek.
Hemen aşağıdaki ekran görüntüsünü oluşturarak uygulamayı yazmaya başlayalım;
Bir web sayfasındaki resimleri bulmak için, List<string> tipinde değer döndüren ResimleriBul() isimli fonksiyon yazacağız. Bu fonksiyon adres bilgisini parametre olarak alacak, sayfadaki her img tagının src özelliğini bir listeye ekleyecek. Geriye bu liste’yi döndürecek.
private List<string> ResimleriBul(string adres)
{
List<string> arrReturn = new List<string>();
WebRequest wr = WebRequest.Create(txtAdres.Text);
WebResponse ws = wr.GetResponse();
StreamReader sr = new StreamReader(ws.GetResponseStream(), Encoding.UTF8);
string response = sr.ReadToEnd();
sr.Close();
ws.Close();
string imageHtmlCode = "<img";
string imageSrcCode = "src=\"";
int index = response.IndexOf(imageHtmlCode);
while (index != -1)
{
response = response.Substring(index);
int tagSonu = response.IndexOf('>');
int baslangic = response.IndexOf(imageSrcCode) + imageSrcCode.Length;
int bitis = response.IndexOf('"', baslangic + 1);
if (bitis > baslangic && baslangic < tagSonu)
arrReturn.Add(response.Substring(baslangic, bitis - baslangic));
if (imageHtmlCode.Length < response.Length)
index = response.IndexOf(imageHtmlCode, imageHtmlCode.Length);
else
index = -1;
}
return arrReturn;
}
ResimleriBul butonunun Click olayında, ResimleriBul() fonksiyonunun döndürdüğü her öğe, ListBox kontrolüne dolduracak.
private void btnResimleriBul_Click(object sender, EventArgs e)
{
lbResimListe.Items.Clear();
foreach (string image in ResimleriBul(txtAdres.Text))
lbResimListe.Items.Add(image);
}
Son olarak, ListBox’ın seçili elemanı her değiştiğinde, PictureBox’ta seçili resim gösterilecek.
private void lbResimListe_SelectedIndexChanged(object sender, EventArgs e)
{
pbResim.Load(lbResimListe.SelectedItem.ToString());
}
Uygulamanın kaynak kodlarını buradan indirebilirsiniz.
İlgili diğer başlıklar:
- C# ile WebCrawler Uygulaması
- C# ile Google PageRank Bulma
- C# ile Ping Uygulaması
- Code Challenge #1
- C# ile Web Sayfasından Sözlük Oluşturma
- CSS ile resim önyükleme (image preloading) tekniği
- C# ile Google Url Kısaltma Servisini Kullanmak
- String tipinde değişkenin hafızada kapladığı alan
- Kelimenin son harfi ile başlayan kelime oyunu
- C# String Dizisini String Uzunluğuna Göre Sıralama


Hocam merhaba ben şuan facebook dan profil resmi çekmek istiyorum.şuan bu konuyu araştırıyorum ancak gelen url den nasıl encoding yapacağımı bulamadım hala
misal facebook da kişinin id si
http://www.facebook.com/1234234 gibi bir id bir profil resmini ifade ediyor ben bunu alıp dönüştümrk istiyorum bunu c# la nasıl yaparım acaba bir fikriniz var mı ?
şimdiden Teşekkürler
Merhaba; Engin Polat.
Anlattığınız konudaki dökümanları nasıl resimdeki gibi çalışır bir program haline nasıl getireceğiz?
Teşekkürler.
vb.net olarak verme şansınız varmı