folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Sayfadaki Birden Fazla Tagın İçeriğini Almak [C#]



Sayfadaki Birden Fazla Tagın İçeriğini Almak [C#]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    sharpshooterın  C# ile bot yapımı konusun kodlar

     

    yukarıdaki yapının biraz daha farklı olarak google arama sonuçlarını çekmeyi ele alırsak  1 sayfada  10 tane h3 tagında içerik oluyor.Bu içerikleri çekmek istedigimde sadece 1. içerik geliyor. foreachle falanda dizinin içine atmayı denedigimde 1. içerik diziyi dolduruyor.

    bütün h3 tagındakileri dizinin içine nasıl atcam yardımcı olursanız sevinirim yarım saattir 4-5 satır kodu yazdım sildim yazdım sildim beceriksizligim üstümde :D

    ek olarak kullandığınız güzel html parse sınıfı varmı kullanımı basit dökümantasyonu bol pratik bişi.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    UCANTENEKE
    UCANTENEKE's avatar
    Kayıt Tarihi: 30/Ağustos/2005
    Erkek
    gelen.subsutring(gelen.indexof("")+1). gelen veriyi kırp sonra ilk h3lerin arasını al sonra yine kırp tekrar al istedğin yeri

    Bence bu dünya üzerinde seçilmiş ırk diye bi kavram varsa bu ırk kesin ruslardır.Onlar daha iyisini yapana kadar en iyisi onlar
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    UCANTENEKE bunu yazdı:
    -----------------------------
    gelen.subsutring(gelen.indexof("")+1). gelen veriyi kırp sonra ilk h3lerin arasını al sonra yine kırp tekrar al istedğin yeri
    -----------------------------

    kırpmada problem yok  gelen.substring(titlebaglangic,titlebitis);   le gelen veri düzgün anlatamadm sanırım :|

    <h3>icerik1 </h3>
    <h3>icerik2 </h3>
    <h3>icerik3 </h3>
    <h3>icerik4 </h3>

    4 tane h3 tagı varsa böyle sayfada ben cekince sadece icerik1 geliyor.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    up

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1905
    1905's avatar
    Kayıt Tarihi: 30/Eylül/2005
    Erkek

    aşağıdaki kod işini görür dostum. 

     

            static void Main(string[] args)
            {
                string text = "<h3>icerik1</h3><h3>icerik2</h3><h3>icerik3</h3><h3>icerik4</h3>";
               
        //Başlangıç ve bitiş Html(XML) taglarını set ediyoruz..
                string startKey = "<h3>";
                string endKey = "</h3>";
               
                //Sayfa içerisindeki diğer içerikle karışmaması için h3 tagını absürd bir string ile replace ediyoruz..
                text = text.Replace(startKey, "#####");
                text = text.Replace(endKey, "#####");
               
                //Daha sonra yeni stringimiz #####icerik1#####icerik2#####  ... formatına dönüşüyor ve bunu Split metoduyla diziye aktarıp kullanabiliyoruz..
                string[] textArray = text.Split(new string[] { "#####" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string t in textArray)
                {
                    Console.WriteLine(t);
                }
            }


    Ey Türk! Üstte mavi gök çökmedikçe, altta yağız yer delinmedikçe, senin ilini ve töreni kim bozabilir !
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    UCANTENEKE
    UCANTENEKE's avatar
    Kayıt Tarihi: 30/Ağustos/2005
    Erkek
    FCN şunu demek istedim
    gelenhtml=

    icerik1

    icerik2

    icerik3

    icerik4

    ; gelen.substring(titlebaglangic,titlebitis); //üsttekiyle ilk ceriği aldın sonra
    gelenhtml=gelenhtml.substring(gelenhtml.indexof("")+1);
    gelenhtml.substring(titlebaglangic,titlebitis);//ikinci sıradakinide böylece almış olursun edit operanın aq ben

    Bence bu dünya üzerinde seçilmiş ırk diye bi kavram varsa bu ırk kesin ruslardır.Onlar daha iyisini yapana kadar en iyisi onlar
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    Bunlarla uğraşma hiç.

     

    http://stackoverflow.com/questions/542194/c-is-there-a-linq-to-html-or-some-other-good-net-html-manipulation-api

     

    http://stackoverflow.com/questions/100358/looking-for-c-html-parser/624410#624410

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1905
    1905's avatar
    Kayıt Tarihi: 30/Eylül/2005
    Erkek

    müritler adamın kafasını karıştırmayın Linq yada parser a da gerek yok :)

     

    üstte verdiğim kodla istediği gibi diziye aktarıp kullanabiliyor.. 


    Ey Türk! Üstte mavi gök çökmedikçe, altta yağız yer delinmedikçe, senin ilini ve töreni kim bozabilir !
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    öncelikle ilgilendiğiniz için teşeekkürler

    @1905 verdiğin örnek iyi güzle hoşta düzenli ifadeler için uygun benim her h3 tagı arasında 30 satır fakrlı kod var oyüzden mantık oalrak güzel ama bende uygulanabilirliği yok su anda

    @spark  onlarada bakmıştım teşekkürler ama oda çok komplike bir iş oluo onada gerek duydugumu snamıoru m

    @teneke seni hala anlamadım :D   öyle ,zaten her filtrelemede yine tüm veriden 1. yi alırsın   

     

    herneyse   olayı hem regexle yaptım  hem substringle. substringi şimdi sallıyorum regex kodunu yapıştırim

             
                Regex r = new Regex("<h2><a title=\"(?<baslik>(.*?))\" href=\"(?<link>(.*?))\" rel=\"bookmark\">(?<baslik2>([a-z]|ı|ü|ğ|ş|ö|,|ç|{.}| )*)</a></h2>");
                MatchCollection mc = r.Matches(htmlmetin);
               
                foreach (Match m in mc)
                {
                   
                     string baslik2 = m.Groups["baslik"].Value.ToString();
                     string link2 = m.Groups["link"].Value.ToString();
                     listBox1.Items.Add(baslik2);
                     listBox2.Items.Add(link2);
                   
                      
                   
                }

     

    bu şekilde istediğim veriyi yine düzgünce çektim ama foreach döngüsünde olmasına ragmen sayfadaki sadece 1. sıradaki yukarıda veridigm formattakiler gelio 

    aynı formatta diger veriler gelmiyor kafayı yicem  :D  

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    http://www.devcomponents.com/htmldoc/

    şunu kullanıp html sayfayı xml dom a çevir

    sonra linq to xml le temizce hallet şunu ya :=

     

    edit : şu posta bakarmısın http://stackoverflow.com/questions/100358/looking-for-c-html-parser/624410#624410  // adamın burada yaptığını yap aynen

    edit : http://omegacoder.com/?p=512

Toplam Hit: 1204 Toplam Mesaj: 10