folder Tahribat.com Forumları
linefolder Java
linefolder Javada Regex İle Url Çekmek



Javada Regex İle Url Çekmek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erc
    erc's avatar
    Kayıt Tarihi: 23/Aralık/2010
    Erkek

    Merhaba muridler Arraylist oluşturup regex ile bunun için link listesi oluşturmak istiyorum yalnız şöyle bir şey var

    <div class="link">
                     <a href="#">test</a>

    </div>

    çektiğim html kodunda da bu tarz bir link yapısı var bende şöyle bir kısıtlama yapmak istiyorum class'ı link olan divlerin içeriğini çekip link listesi oluşturmak istiyorum bazı regex kodları var ama html content'in tamamından linkleri çıkarıyor istediğim gibi bir yapı çıkaramadı bu konu üzerinde daha önce çalışmış olan muridler varsa bir el atabilir mi ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Regex ile olmaz, aslında yapmaya müsait recursive özellikleri olan çeşitli flavor'lar ama hiç biri tam olarak HTML parse etmek için uygun değil ki senin HTML parse etmen lazım. Bu yüzden DOM üzerinden sorgulama / adresleme yapabileceğin bir HTML Parser kullan. Java'dan hiç anlamam şöyle bir şey buldum hemen : http://jsoup.org/

    Denemedim ama sayfadaki örneğe bakılırsa o tür linkleri listeyebileceğin bir kod herhalde şöyle olur :

    Document doc = Jsoup.connect("http://site.com/").get();
    Elements linkler = doc.select("div.link a");
    for (Element link : linkler) {
    	print("%s", link.attr("href"));
    }

     

     


    anlıyorum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    http://www.vogella.com/tutorials/JavaRegularExpressions/article.html

    (?i)<div[\s\S]*?class="link"[\s\S]*?>[\s\S]*?<a[\s\S]*?href="([\s\S]*?)"[\s\S]*?>

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek
    Daft bunu yazdı

    http://www.vogella.com/tutorials/JavaRegularExpressions/article.html

    (?i)<div[\s\S]*?class="link"[\s\S]*?>[\s\S]*?<a[\s\S]*?href="([\s\S]*?)"[\s\S]*?>

    1. Birden fazla link almaya çalışılıyor olabilir. 

    2. Bu div'lerden birden fazla olabilir. 

    3. <div etiketinden hemen sonra a etiketi yerine başka bir etiket olabilir.

    HTML işte. Bunun gibi daha bir sürü muhtemel sıkıntıya gebe.

    Bu yüzden Regex ile HTML parse edilemez, hata HTML'i boşverelim, CSV parse etmek için bile uygun değil.

    Şöyle bir kaç da link vereyim:

    http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

    http://programmers.stackexchange.com/questions/113237/when-you-should-not-use-regular-expressions

     

     

    buzukatak tarafından 15/Şub/14 01:22 tarihinde düzenlenmiştir

    anlıyorum.
Toplam Hit: 1794 Toplam Mesaj: 4