none
Web browserdan veri cekme hakkında RRS feed

  • Soru

  • Herkese iyi çalışmalar.

    Bi sitede bazı urunlerın fıyatları var bi urunun fıyatını nasıl labelde gosterebılırım .Şimdiden tesekkurler

    ornek kod parcacıgı;

    <div class="f_link corner5">
    
         <div class="urun_adi">Ayakkabi</div>
    
         <div class="alim_fiyat">60</div>
    
        <div class="satis_fiyat">67.78</div>
    
    </div>

    8 Haziran 2013 Cumartesi 17:53

Yanıtlar

  • yapamadım hocam bı gosterırmısın

    Kendine bir class oluştur

    public class Urunler
    {
       public string UrunAdi{get;set;}
       public decimal AlisFiyat{get;set;}
       public decimal Satis{get;set;}
    }

    sonra da şunu yaz

    List<Urunler> urunler = new List<Urunler>();
    int i=-1;
    public void Button1_Click()
    {
        i=-1;
        HtmlElementCollection col = webBrowser1.Document.GetElementByTagName("div");
        foreach(HtmlElement el in col)
        {
            Urun urn = new Urun();
            string classtext = el.GetAttruble("class");
            if(classtext=="urun_adi")
            {
               urn.UrunAdi = el.InnerText;
               urun.Add(urn);
               i++;
            }
            else if(classtext=="alim_fiyat")
               urun[i].AlisFiyat = el.InnerText;
            else if(classtext=="satis_fiyat")
                urun[i].SatisFiyat = el.InnerText;
        }
    }
    bu şekilde tüm ürünleri alırsın sonra da list i istediğin gibi kullanabilirsin dataGridView de felan her türlü  kullanıma serbesttir


    http://barisceviz.blogspot.com/
    Barış Ceviz - Executing Life

    facebooktwitteryoutube

    11 Haziran 2013 Salı 14:56
    Moderatör

Tüm Yanıtlar

  • Yardım edıcek yokmu 
    8 Haziran 2013 Cumartesi 18:29
  • Bu linkte aradığını bulabilirsin :

    http://www.webmastersitesi.com/net-programciligi/159772-c-ile-bot-yapimi-web-sitelerinden-veri-cekme.htm

    8 Haziran 2013 Cumartesi 18:48
  • HtmlElementCollection col = webBrowser1.Document.GetElementByTagName("div");
    foreach(HtmlElement el in col)
    {
    string classtext = el.GetAttruble("class");
    if(classtext=="urun_adi")
    label1.Text = el.InnerText;
    else if(classtext=="alim_fiyat")
    label2.Text = el.InnerText;
    else if(classtext=="satis_fiyat")
    label3.Text = el.InnerText;
    }
    kendine göre düzenlemeleri yaparak kullanabilirsin

    http://barisceviz.blogspot.com/
    Barış Ceviz - Executing Life

    facebooktwitteryoutube

    8 Haziran 2013 Cumartesi 20:03
    Moderatör
  • olmuyor bu calısmıyor guncel yardımcı olabılırmsıınız
    9 Haziran 2013 Pazar 19:41
  • Copy paste yaparsan çalışmaz , bence Barış bey'den , mantığını anlatmasını söyleyin..

    Mantığı anlarsanız oradaki kodu düzenleyip istediğiniz bilgiyi çekersin copy paste ile belli bi yere kadar gidersin tavsiyem bu yönde ..

    9 Haziran 2013 Pazar 21:27
  • copy paste yapmadım kendıme gore duzenledım programı calıstırnca if bloklarının icine bile gırmıyor orda bı sorun var
    10 Haziran 2013 Pazartesi 07:51
  • string classtext = el.GetAttribute("classname");
    string classtext alanını silip üsteki yazdığımı yazıp sonuçu buraya yazar mısın
    • Düzenleyen Emre Pirasa 10 Haziran 2013 Pazartesi 08:17
    10 Haziran 2013 Pazartesi 08:17

  •        
    string adres = "http://www.google.com.tr";
                WebRequest istek = HttpWebRequest.Create(adres);
                WebResponse cevap;
                cevap = istek.GetResponse();
                StreamReader donenBilgiler = new StreamReader(cevap.GetResponseStream());
                string gelen = donenBilgiler.ReadToEnd();
                int titleIndexBaslangici = gelen.IndexOf("<div class="urunadi">")+21;
                int titleIndexBitisi = gelen.Substring(titleIndexBaslangici).IndexOf("</div>");
                label1.Text = gelen.Substring(titleIndexBaslangici,titleIndexBitisi);
    örnek bunu bir dene 
    WebRequest kısımlarını yazınca control+. ya basarsan kütüphaneyide ekler
    hatasız çalışır

    • Düzenleyen Ozkans Tech 10 Haziran 2013 Pazartesi 17:31
    10 Haziran 2013 Pazartesi 17:30
  • string classtext = el.GetAttribute("classname");
    string classtext alanını silip üsteki yazdığımı yazıp sonuçu buraya yazar mısın

    cok tesekkurler boyle yapınca oldu ama sımdı bı sorun daha var mesala bu kod bloklarında alt alta 20 tane flan var bn ıstedıgım urunun bılgısını nasıl alıcam ornek kod;

    <div class="f_link corner5">
    
         <div class="urun_adi">Ayakkabi</div>
    
         <div class="alim_fiyat">60</div>
    
        <div class="satis_fiyat">67.78</div>
    
    </div>
    
    <div class="f_link corner5">
    
         <div class="urun_adi">Sandalet</div>
    
         <div class="alim_fiyat">19</div>
    
        <div class="satis_fiyat">25.50</div>
    
    </div>

    11 Haziran 2013 Salı 05:48
  • yardımcı olucak yokmu
    11 Haziran 2013 Salı 08:16
  • foreach(HtmlElement el in col)
    {
    //Döngü sana zaten tüm hepsin döndürür ve verir. her dönüşünde bi alt satırı verir.
    }
    11 Haziran 2013 Salı 09:02
  • yapamadım hocam bı gosterırmısın
    11 Haziran 2013 Salı 09:18
  • yapamadım hocam bı gosterırmısın

    Kendine bir class oluştur

    public class Urunler
    {
       public string UrunAdi{get;set;}
       public decimal AlisFiyat{get;set;}
       public decimal Satis{get;set;}
    }

    sonra da şunu yaz

    List<Urunler> urunler = new List<Urunler>();
    int i=-1;
    public void Button1_Click()
    {
        i=-1;
        HtmlElementCollection col = webBrowser1.Document.GetElementByTagName("div");
        foreach(HtmlElement el in col)
        {
            Urun urn = new Urun();
            string classtext = el.GetAttruble("class");
            if(classtext=="urun_adi")
            {
               urn.UrunAdi = el.InnerText;
               urun.Add(urn);
               i++;
            }
            else if(classtext=="alim_fiyat")
               urun[i].AlisFiyat = el.InnerText;
            else if(classtext=="satis_fiyat")
                urun[i].SatisFiyat = el.InnerText;
        }
    }
    bu şekilde tüm ürünleri alırsın sonra da list i istediğin gibi kullanabilirsin dataGridView de felan her türlü  kullanıma serbesttir


    http://barisceviz.blogspot.com/
    Barış Ceviz - Executing Life

    facebooktwitteryoutube

    11 Haziran 2013 Salı 14:56
    Moderatör