• 22-11-2012, 14:40:26
    #28
    Üyeliği durduruldu
    MyoperS adlı üyeden alıntı: mesajı görüntüle
    arkadaşın başlıktaki yeterliliği sınayabilecek bir kapasitesi yok o yüzden vermiş gazı geçmiş
    Tontonq adlı üyeden alıntı: mesajı görüntüle
    önce şunu not düşeyim verdiğin site node.js / express te kodlanmış
    2. si adam herhalde Türkiye'de önde gelen haber sitelerine göre uyarlamış botu

    ama şu siteleri bile doğru çekebiliyor >

    http://www.nytimes.com/2012/11/22/te...he-turkey.html

    http://www.faz.net/aktuell/politik/e...-11968260.html

    şu konunu linkini denedim

    https://www.r10.net/php/922002-php-uz...-var-mi-3.html

    sizin son yazdığınız cevabın içeriğini verdi

    demek oluyorki adamlardaki mantık şu

    1- metalarda description da geçen part ı tagların arasında aratıyor makalenin geri kalanını buluyor
    2- içeriğinde en uzun yazı olan tagın içeriğini haber in gövdesi olarak tanımlıyor
    3- h1/h2 tarzı bir şey haber in üstünde yer alan kısa başlığı haber konusu olarak nitelendiriyor veya title/ "og:title" dan da çekiyor olabilir

    bunları regexle falan taratıp yapmıyor dom la parse ederek yapıyor

    oxford davetiyesi olan atsın

    şimdi benim yazdığım cevap seninkinden büyük olduğu için haber gövdesi olarak benimkini görecek
    Bu bir bot değil hocam ona eminim çünkü 1 ay önce açtığım 50 indexi olan bi siteye bot yazmış olamaz herhalde

    Harvard seni anca paklar hocam

    Resime dikkat ettinmi linkleri temizlemiş

    Hocam haklıymışın senin yazıyı gördü

  • 22-11-2012, 15:01:02
    #29
    Bu işi yapmak için öncelikle bir semantik algoritma kurmanız lazım.
    Bir sürü detayı var. Öncelikle opeh graph var mı bakacaksınız.
    Yoksa sitedeki en uzun <p><span> içindeki en uzun yazıyı ve h1 i arayacaksınız.
    Eğer hiç birini bulamazsanız site içinde en uzun metnin başını ve sonunu bulup title ile izole edeceksiniz.
    Her halükarda mutlak başarıya ulaşamazsınız. Çünkü kuraldan çok istisna olan bir yer internet.

    Ama bu en uzun metin bölümü ile ilgili aklıma basit bir algoritma geldi.
    Ben bunu kullanarak bir bot yazayım )))
  • 22-11-2012, 16:00:54
    #30
    adamın yaptığı gibi mükemmel bir şey değil ama mantıken böyle en uzun yazıyı almak daha sonra img lari alip en büyük width*height yapip en büyüğünü bulmak onu ana resim olarak tanimlamak title og:title dan title almak yoksa h1 h2 vs.
    fikir versin diye gösteriyorum production amaçlı değildir
    <?php
    
    function file_get_contents_curl($url)
     {
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_HEADER, 0);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_USERAGENT, "Opera");
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     $data = curl_exec($ch);
     curl_close($ch);
     return $data;
     }
    
     function sirala($a,$b) { 
     if ($a['uzunluk'] == $b['uzunluk']) return 0; 
     return ($a['uzunluk'] < $b['uzunluk'])? -1 : 1; 
     } 
    
     $html = file_get_contents_curl("http://www.yazmak.org/baumgartnera-hapis-cezasi.html");
     
     $doc = new DOMDocument();
     @$doc->loadHTML($html);
    
     
    $silinecek=array("script","embed","style","object","hr");
    foreach($silinecek as $silin) 
    { 
    $siltag = $doc->getElementsByTagName($silin); 
    $siltaglength = $siltag->length; 
    for ($i = 0; $i < $siltaglength ; $i++) { 
      $siltag->item(0)->parentNode->removeChild($siltag->item(0)); 
    } 
    } 
    
     $metas = $doc->getElementsByTagName('div');
     
    
     for ($i = 0; $i < $metas->length; $i++)
     {
     $meta = $metas->item($i);
     $veri = trim(str_replace("\n\n","",str_replace(array("\r\n","\x0A\x0A",PHP_EOL . PHP_EOL,"\t","  "),"\n",str_replace(array("<br>","<br />"),PHP_EOL,strip_tags($meta->nodeValue)))),"\n");
     $divler[$i]["veri"]= $veri;
     $divler[$i]["uzunluk"]= strlen($veri);
     }
     
    
    usort($divler,'sirala');
    $divler=array_reverse($divler);
    echo '<textarea cols=60 rows=20>'.$divler[0]["veri"].'</textarea>';
  • 22-11-2012, 16:20:49
    #31
    Üyeliği durduruldu
    Hocam çok sağol bilgiler için
  • 23-11-2012, 00:49:53
    #32
    Tontonq adlı üyeden alıntı: mesajı görüntüle
    adamın yaptığı gibi mükemmel bir şey değil ama mantıken böyle en uzun yazıyı almak daha sonra img lari alip en büyük width*height yapip en büyüğünü bulmak onu ana resim olarak tanimlamak title og:title dan title almak yoksa h1 h2 vs.
    fikir versin diye gösteriyorum production amaçlı değildir
    <?php
    
    function file_get_contents_curl($url)
     {
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_HEADER, 0);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_USERAGENT, "Opera");
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     $data = curl_exec($ch);
     curl_close($ch);
     return $data;
     }
    
     function sirala($a,$b) { 
     if ($a['uzunluk'] == $b['uzunluk']) return 0; 
     return ($a['uzunluk'] < $b['uzunluk'])? -1 : 1; 
     } 
    
     $html = file_get_contents_curl("http://www.yazmak.org/baumgartnera-hapis-cezasi.html");
     
     $doc = new DOMDocument();
     @$doc->loadHTML($html);
    
     
    $silinecek=array("script","embed","style","object","hr");
    foreach($silinecek as $silin) 
    { 
    $siltag = $doc->getElementsByTagName($silin); 
    $siltaglength = $siltag->length; 
    for ($i = 0; $i < $siltaglength ; $i++) { 
      $siltag->item(0)->parentNode->removeChild($siltag->item(0)); 
    } 
    } 
    
     $metas = $doc->getElementsByTagName('div');
     
    
     for ($i = 0; $i < $metas->length; $i++)
     {
     $meta = $metas->item($i);
     $veri = trim(str_replace("\n\n","",str_replace(array("\r\n","\x0A\x0A",PHP_EOL . PHP_EOL,"\t","  "),"\n",str_replace(array("<br>","<br />"),PHP_EOL,strip_tags($meta->nodeValue)))),"\n");
     $divler[$i]["veri"]= $veri;
     $divler[$i]["uzunluk"]= strlen($veri);
     }
     
    
    usort($divler,'sirala');
    $divler=array_reverse($divler);
    echo '<textarea cols=60 rows=20>'.$divler[0]["veri"].'</textarea>';
    Hocam benim sitem nerden aklınıza geldi?
  • 23-11-2012, 15:32:27
    #33
    lancewood adlı üyeden alıntı: mesajı görüntüle
    Hocam benim sitem nerden aklınıza geldi?
    https://www.r10.net/php/922002-php-uz...post1066250055

    şurdaki postta gördüm galiba
  • 23-11-2012, 21:00:29
    #34
    meta tag çekebilmek için boşa kendinizi yormaya gerek yok

    http://php.net/manual/en/function.get-meta-tags.php

    <?php
    // Assuming the above tags are at www.example.com
    $tags = get_meta_tags('http://www.example.com/');
    
    // Notice how the keys are all lowercase now, and
    // how . was replaced by _ in the key.
    echo $tags['author'];       // name
    echo $tags['keywords'];     // php documentation
    echo $tags['description'];  // a php manual
    echo $tags['geo_position']; // 49.33;-86.59
    ?>
  • 23-11-2012, 21:08:31
    #35
    Üyeliği durduruldu
    inforesim adlı üyeden alıntı: mesajı görüntüle
    meta tag çekebilmek için boşa kendinizi yormaya gerek yok

    http://php.net/manual/en/function.get-meta-tags.php

    <?php
    // Assuming the above tags are at www.example.com
    $tags = get_meta_tags('http://www.example.com/');
    
    // Notice how the keys are all lowercase now, and
    // how . was replaced by _ in the key.
    echo $tags['author'];       // name
    echo $tags['keywords'];     // php documentation
    echo $tags['description'];  // a php manual
    echo $tags['geo_position']; // 49.33;-86.59
    ?>
    Konuyu okusaydın meta tag çekmeye çalışmadıklarını anlayabilirdin.
  • 23-11-2012, 21:16:43
    #36
    Keyif adlı üyeden alıntı: mesajı görüntüle
    Konuyu okusaydın meta tag çekmeye çalışmadıklarını anlayabilirdin.
    Resimi facebook üzerinden çekebilirsiniz,

    http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.bilgetavuk.com%2F10-kasim-kapak-fotograflari%2F
    Verdiğim adres de url nin facebook tarama sonuçlarını veriyor.