• 05-11-2013, 09:15:37
    #1
    Selam Arkadaşlar,

    Bir müftülük sitesi için diyanetin duyurularını çeken bot yapmıştım. Ancak diyanet şimdi siteyi değiştirmiş. Yeni siteden veriyi çektiremedim acaba yardımcı olabilirmisiniz.

    Önceki kod:
    <?php

    $site= file_get_contents("http://www.diyanet.gov.tr/turkish/dy/default.aspx");
    $link = explode('<div id="duyurular" >',$site);
    $linkSon = explode('</div>',$link[1]);

    echo preg_replace('@<a(.*?)href="@i', '<a target="_blank" $1href="http://www.diyanet.gov.tr/turkish/dy/', $linkSon[0]);
    ?>

    bu şekildeydi

    Şimdi:
    <?php

    $site= file_get_contents("http://www.diyanet.gov.tr/turkish/dy/");
    $link = explode('<div id="listitem" >',$site);
    $linkSon = explode('</div>',$link[1]);

    echo preg_replace('@<a(.*?)href="@i', '<a target="_blank" $1href="http://www.diyanet.gov.tr/turkish/dy/', $linkSon[0]);
    ?>
    bu şekil yapıyorum ancak olmuyor.
  • 05-11-2013, 11:17:09
    #2
    http://www.diyanet.gov.tr/tr/icerik/duyuru

    şu linki incelemelisiniz bence
  • 05-11-2013, 12:13:59
    #3
    O linkide denedim çekmiyor verileri
  • 05-11-2013, 14:19:59
    #4
    Üyeliği durduruldu
    Merhaba,

    $site= file_get_contents("http://www.diyanet.gov.tr/tr/icerik/duyuru");

    $link = explode('<div class="listitem">',$site);

    echo preg_replace('@<a(.*?)href="@i', '<a target="_blank" $1href="http://www.diyanet.gov.tr', $linkSon[0]);

    yukarıdaki değişkenleri ve echo satırını yazdığım şekilde değiştirirseniz son duyuruyu göstermekte.
  • 05-11-2013, 17:04:58
    #5
    TechNoLoqisT adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    $site= file_get_contents("http://www.diyanet.gov.tr/tr/icerik/duyuru");

    $link = explode('<div class="listitem">',$site);

    echo preg_replace('@<a(.*?)href="@i', '<a target="_blank" $1href="http://www.diyanet.gov.tr', $linkSon[0]);

    yukarıdaki değişkenleri ve echo satırını yazdığım şekilde değiştirirseniz son duyuruyu göstermekte.
    ilginiz için çok teşekkür ederim. ancak duyuruları bu şekilde yaptığımda

    http://www.bozyazimuftulugu.gov.tr/deneme.php bu şekil aynı duyuru tekrarlı çekti amaca örneğin son 5 duyuruyu nasıl çektirebilirim
  • 07-11-2013, 17:14:08
    #6
    <?php
    $adres = 'http://www.diyanet.gov.tr/tr/icerik/duyuru';
    $al = file_get_contents($adres);
    preg_match_all('/<div class="listitem">(.*?)<\/div\>/smi',$al,$a);
    print_r($a[1]);

    ?>
    bu şekilde bi kodla duyuruları çektirdim.
    test adresi: http://bozyazimuftulugu.gov.tr/deneme2.php
    yalnız bi sorunum var ben resimleri çekmek istemiyorum sadece başlıkları nasıl çektirebilirim.
  • 07-11-2013, 19:04:16
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    	
    	$base = "http://www.diyanet.gov.tr/";
    	
    	$url = "http://www.diyanet.gov.tr/tr/icerik/duyuru";
    	
    	$response = file_get_contents($url);
    	
    	$results = array();
    	
    	if(strlen($response) > 0) {
    		$list = preg_match("#\<div\sclass\=\"list\"\>(.*?)\<div\sclass\=\"paging\"\>#si", $response, $matches) ? end($matches) : null;
    		
    		if(!is_null($list)) {
    			$items = preg_match_all("#\<div\sclass\=\"listitem\"\>(.*?)href\=\"(.*?)\"(.*?)src\=\"(.*?)\"(.*?)\<p\>(.*?)\<\/p\>(.*?)\<\/div\>#si", $list, $matches) ? array($matches[2], $matches[4], $matches[6]) : null;
    			
    			if(!is_null($items)) {
    				foreach(end($items) as $key => $value) {
    					$item = (object) array(
    						"href" => null,
    						"src" => null,
    						"p" => null
    					);
    					
    					$item->href = $base . "tr/icerik" . $items[0][$key];
    					$item->src = $base . ltrim($items[1][$key], "/");
    					$item->p = preg_match("#\<span\>(.*?)\<\/span\>#si", html_entity_decode(trim($items[2][$key])), $matches) ? trim(end($matches)) : null;
    					
    					$results[] = $item;
    					
    					unset($item);
    				}
    			}
    		}
    	}
  • 08-11-2013, 08:55:32
    #8
    saintx adlı üyeden alıntı: mesajı görüntüle
    <?php
    	
    	$base = "http://www.diyanet.gov.tr/";
    	
    	$url = "http://www.diyanet.gov.tr/tr/icerik/duyuru";
    	
    	$response = file_get_contents($url);
    	
    	$results = array();
    	
    	if(strlen($response) > 0) {
    		$list = preg_match("#\<div\sclass\=\"list\"\>(.*?)\<div\sclass\=\"paging\"\>#si", $response, $matches) ? end($matches) : null;
    		
    		if(!is_null($list)) {
    			$items = preg_match_all("#\<div\sclass\=\"listitem\"\>(.*?)href\=\"(.*?)\"(.*?)src\=\"(.*?)\"(.*?)\<p\>(.*?)\<\/p\>(.*?)\<\/div\>#si", $list, $matches) ? array($matches[2], $matches[4], $matches[6]) : null;
    			
    			if(!is_null($items)) {
    				foreach(end($items) as $key => $value) {
    					$item = (object) array(
    						"href" => null,
    						"src" => null,
    						"p" => null
    					);
    					
    					$item->href = $base . "tr/icerik" . $items[0][$key];
    					$item->src = $base . ltrim($items[1][$key], "/");
    					$item->p = preg_match("#\<span\>(.*?)\<\/span\>#si", html_entity_decode(trim($items[2][$key])), $matches) ? trim(end($matches)) : null;
    					
    					$results[] = $item;
    					
    					unset($item);
    				}
    			}
    		}
    	}?>
    üstadım bu şekilde dediğiniz gibi değiştirdim ama hiç veri almadı

    adres: http://bozyazimuftulugu.gov.tr/deneme2.php
  • 08-11-2013, 09:51:09
    #9
    salihads adlı üyeden alıntı: mesajı görüntüle
    üstadım bu şekilde dediğiniz gibi değiştirdim ama hiç veri almadı

    adres: http://bozyazimuftulugu.gov.tr/deneme2.php
    sonucu ekrana yazdırmadım. bu kadarda hazırcı olmayın ya