none
Linkleri cekmek

    Soru

  • Merhaba arkadaşlar bi sitedeki linkleri nasıl cekebilirm  Bi kod bulmuştum  tıkladıgımda  about:\... felan die cekiyor bazılarını dogru cekiyor bazılarını yanlış cekiyor.   BANA BU KONUDA YARDIMCI OLABİLİRSENİZ COK SEVİNİRİM Kolay gelsin.

    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    20 Haziran 2012 Çarşamba 19:08

Tüm Yanıtlar

  • static class LinkFinder
        {
            public static List<LinkItem> Find(string file)
            {
                List<LinkItem> list = new List<LinkItem>();
    
                MatchCollection m1 = Regex.Matches(file, @"(<a.*?>.*?</a>)",
                    RegexOptions.Singleline);
    
                
                foreach (Match m in m1)
                {
                    string value = m.Groups[1].Value;
                    LinkItem i = new LinkItem();
    
                    Match m2 = Regex.Match(value, @"href=\""(.*?)\""",
                    RegexOptions.Singleline);
                    if (m2.Success)
                    {
                        i.Href = m2.Groups[1].Value;
                    }
    
                    string t = Regex.Replace(value, @"\s*<.*?>\s*", "",
                    RegexOptions.Singleline);
                    i.Text = t;
    
                    list.Add(i);
                }
                return list;
            }
        }
        public struct LinkItem
        {
            public string Href;
            public string Text;
    
            public override string ToString()
            {
                return Href + "\n\t" + Text;
            }
        }

    Bu sınıfları kullanarak kolayca çekebilirsin. Sınıfları ekledikten sonra aşağıdaki gibi kullanabilirsin.

    List<LinkItem> linkListesi=LinkFinder.Find(html);
    20 Haziran 2012 Çarşamba 22:02
  • Hocam nasıl kullanıyoruz bunu Teşekkür ettim ama kulalnamadım :))))

    List<LinkItem> linkListesi=LinkFinder.Find(html);

    Listbox1.add eklemek istiyorum ama nasıl

    21 Haziran 2012 Perşembe 14:29
  • foreach(var link in linkListesi)
    {
      Listbox1.Add(link);
    }
    21 Haziran 2012 Perşembe 15:10
  •           strink = webBrowser1.Document.Body.InnerHtml;         webbrowsdeki sayfanın html kodunu alıyorum 

              List<numaracekme.LinkFinder.LinkItem> linkListesi = LinkFinder.Find(strink); html kodu buraya yolluyorum
              listBox1.Items.Add(linkListesi.Count.ToString());//0 GELİYOR 

    foreach(var link in linkListesi)
    {
      Listbox1.Add(link); HALİYLE EKLEMİYOR
    } 



    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    21 Haziran 2012 Perşembe 15:15
  •           strink = webBrowser1.Document.Body.InnerHtml;         webbrowsdeki sayfanın html kodunu alıyorum 

              List<numaracekme.LinkFinder.LinkItem> linkListesi = LinkFinder.Find(strink); html kodu buraya yolluyorum
              listBox1.Items.Add(linkListesi.Count.ToString());//0 GELİYOR 

    foreach(var link in linkListesi)
    {
      Listbox1.Add(link); HALİYLE EKLEMİYOR
    } 



    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    strink = webBrowser1.Document.Body.InnerHtml;          
    List<numaracekme.LinkFinder.LinkItem> linkListesi = LinkFinder.Find(strink); 
    foreach(var x in linkListesi)
    {
     listBox1.Items.Add(x);
    }
     
    

    Eğer gelmiyorsa breakpoint koyup strink değişkeninin değerini kontrol et, büyük ihtimalle html gelmiyordur.
    21 Haziran 2012 Perşembe 15:22
  • Error 1 The type name 'LinkItem' does not exist in the type 'sistem.LinkFinder' C:\Documents and Settings\WinXp\Belgelerim\Visual Studio 2008\Projects\sistem\sistem\Form1.cs 1373 41

    Error 2 Cannot implicitly convert type 'System.Collections.Generic.List<sistem.LinkItem>' to 'System.Collections.Generic.List<sistem.LinkFinder.LinkItem>' C:\Documents and Settings\WinXp\Belgelerim\Visual Studio 2008\Projects\sistem\sistem\Form1.cs 1373 65 sistem

    böylebir hata alıyorum


    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun


    21 Haziran 2012 Perşembe 15:34
  • Baya karıştırmışsın sen ya. Birden fazla yerde tanımlamışsın sınıfları. Tekrar bir gözden geçir.

    strink = webBrowser1.Document.Body.InnerHtml;          
    List<LinkItem> linkListesi = LinkFinder.Find(strink); 
    foreach(LinkItem x in linkListesi)
    {
     listBox1.Items.Add(x.Href);
    }
    
    21 Haziran 2012 Perşembe 15:43
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Windows.Forms;
    namespace numaracekme
    {
        static class LinkFinder
        {
            public static List<LinkItem> Find(string file)
            {
                List<LinkItem> list = new List<LinkItem>();

                MatchCollection m1 = Regex.Matches(file, @"(<a.*?>.*?</a>)",
                    RegexOptions.Singleline);


                foreach (Match m in m1)
                {
                    string value = m.Groups[1].Value;
                    LinkItem i = new LinkItem();

                    Match m2 = Regex.Match(value, @"href=\""(.*?)\""",
                    RegexOptions.Singleline);
                    if (m2.Success)
                    {
                        i.Href = m2.Groups[1].Value;
                    }

                    string t = Regex.Replace(value, @"\s*<.*?>\s*", "",
                    RegexOptions.Singleline);
                    i.Text = t;

                    list.Add(i);
                }
                return list;
            }
        }
        public struct LinkItem
        {
            public string Href;
            public string Text;

            public override string ToString()
            {
                return Href + "\n\t" + Text;
            }
        }

    }

    SINIF BU ŞEKİLDE

    BUTTON OLAYINDA 

           strink = webBrowser1.Document.Body.InnerHtml;
                List<LinkItem> linkListesi = LinkFinder.Find(strink);
                foreach (LinkItem x in linkListesi)
                {
                    listBox1.Items.Add(x.Href);
                }

    FAKAT KOD CALIŞTIRAMADIM HATA ALMIYORUM ŞUANDA FAKAT  link gelmiyor cekmiyor 0 geliyor count (:


    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    21 Haziran 2012 Perşembe 16:27
  • Debug yapıp strink değişkeninin değerini kontrol ettin mi, veri geliyor mu html stringi? Büyük ihtimalle gelmiyor çünkü linkleri bulan sınıfta herhangi bir sorun yok denedim. Aşağıdaki gibi denersen çalıştığını görebilirsin.

    strink=@"<html><body><a href=""http://www.microsoft.com"">Microsoft</a></body></html>";

    21 Haziran 2012 Perşembe 16:40
  • Hocam BANA SİTE ÜZERİNDEN CALIŞAN Bİ PROJEYİ AYARLAYIP DAWLOAD LİNKİNİ VEREBLİRSENİZ Cok memnun kalırm beceremdim (:

    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    21 Haziran 2012 Perşembe 16:57
  • Sorun devam ediyor.

    Tek amacım Ekmek param Programcılık zor iş derler Parası yok derlerdi inanmazdım Saglık olsun

    22 Haziran 2012 Cuma 19:34