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.
Diyanet Duyuru Botu
14
●1.438
- 05-11-2013, 11:17:09
- 05-11-2013, 14:19:59Üyeliği durdurulduMerhaba,
$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:58ilginiz için çok teşekkür ederim. ancak duyuruları bu şekilde yaptığımdaTechNoLoqisT adlı üyeden alıntı: mesajı görüntüle
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<?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:16Kimlik 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üstadım bu şekilde dediğiniz gibi değiştirdim ama hiç veri almadısaintx adlı üyeden alıntı: mesajı görüntüle
adres: http://bozyazimuftulugu.gov.tr/deneme2.php - 08-11-2013, 09:51:09sonucu ekrana yazdırmadım. bu kadarda hazırcı olmayın yasalihads adlı üyeden alıntı: mesajı görüntüle