• 23-12-2008, 19:56:50
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar
    Benim bir arkadaşıma okulda hoca sürekli ünlülerin biyografisini istiyor.Onun evde bilgisayarı var ama interneti yok bende bir botla bir sitedeki biyografileri çekip metin belgesine kaydedip ona vericem.
    İlk defa bot yazmayı denedim ama linkleri bile çekemedim daha

    Kodlar aşşağıda:

    <?
    $adres="http://www.biyografi.net/kisimeslektablo.asp?id=24";
    $kaynak=file_get_contents($adres);
    $deneme='<A HREF="kisiayrinti.asp?kisiid=(.*?)">';
    preg_match_all("$deneme", $kaynak, $bol);
    foreach ($bol[1] as $asd){
    	echo $asd;
    }
    ?>
    Kod bu...
    Bu kod ile id değerlerini sıralamak istiyorum ama bir türlü başaramadım.Kodu çalıştırdığımda bembeyaz boş sayfa geliyor.Nerde hata yaptım acaba?
    title istediğimde çekiyorum ama id değerlerini alamıyorum
  • 23-12-2008, 23:12:41
    #2
    $deneme='<A HREF="kisiayrinti.asp[?]kisiid=(.*?)">';
    olarak dener misin?
  • 24-12-2008, 15:33:14
    #3
    Eposta Aktivasyonu Gerekmekte
    Tr-Ay adlı üyeden alıntı: mesajı görüntüle
    $deneme='<A HREF="kisiayrinti.asp[?]kisiid=(.*?)">';
    olarak dener misin?
    Arkadaşlar aslında soru benimdi.Sebebini anlıyamadığım bir sebepten r10'a konu açamıyordum.Arkadaşımdan rica ettim.
    Tr-Ay yardımın için teşşekür ederim.Denedim gerçekten başarılı bir şekilde çalıştı. Verebilirsem +rep vericeğim.
  • 24-12-2008, 21:48:00
    #4
    evet benimde işime yaradı tşkr
  • 24-12-2008, 21:51:49
    #5
    File_get_contents ile 100 sayfayı 27 sn de çekti. Curl ile 11 sn
    Curl ile olanı;
    <?
    function acilma_suresi (){
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];
    return $sec + $usec;
    }
    $saymaya_basla = acilma_suresi();
    
    $i = 1;
    while ($i <= 4442) {
    $i++;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,
    "http://www.biyografi.net/kisiyazdir.asp?kisiid=$i");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);
    $cho = curl_exec($ch);
    curl_close($ch);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)       		<center>#si',$cho,$bot);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)</font>#si',$cho,$bot1);
    $duze = substr("$bot1[1]", 0, 4);
    $randoms = mt_rand(411554, 790800);
    $ffile= fopen("indexc/$duze$randoms.html", "a");
    fwrite($ffile,"$bot[1]");
    fclose($ffile);
    }
    echo "$i tane alındı"; 
    $saymayi_bitir = acilma_suresi(); $basla = $saymayi_bitir - $saymaya_basla; echo "Sayfa " . substr($basla, 0, 5) . " saniye oluşturuldu.";
    
    ?>

    File_get_contents

    <?
    function acilma_suresi (){
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];
    return $sec + $usec;
    }
    $saymaya_basla = acilma_suresi();
    
    $i = 1;
    while ($i <= 5) {
    $i++;
    $site= file_get_contents("http://www.biyografi.net/kisiyazdir.asp?kisiid=$i");
    preg_match('#<font face="verdana" size="5" color="red">(.*?)       		<center>#si',$site,$bot);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)</font>#si',$site,$bot1);
    $duze = substr("$bot1[1]", 0, 4);
    $randoms = mt_rand(411554, 790800);
    $ffile= fopen("index/$duze$randoms.html", "a");
    fwrite($ffile,"$bot[1]");
    fclose($ffile);
    }
    echo "$i tane alındı"; 
    $saymayi_bitir = acilma_suresi(); $basla = $saymayi_bitir - $saymaya_basla; echo "Sayfa " . substr($basla, 0, 5) . " saniye oluşturuldu.";
    ?>
  • 25-12-2008, 21:07:14
    #6
    Eposta Aktivasyonu Gerekmekte
    kale2000 adlı üyeden alıntı: mesajı görüntüle
    File_get_contents ile 100 sayfayı 27 sn de çekti. Curl ile 11 sn
    Curl ile olanı;
    <?
    function acilma_suresi (){
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];
    return $sec + $usec;
    }
    $saymaya_basla = acilma_suresi();
    $i = 1;
    while ($i <= 4442) {
    $i++;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,
    "http://www.biyografi.net/kisiyazdir.asp?kisiid=$i");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);
    $cho = curl_exec($ch);
    curl_close($ch);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)       		<center>#si',$cho,$bot);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)</font>#si',$cho,$bot1);
    $duze = substr("$bot1[1]", 0, 4);
    $randoms = mt_rand(411554, 790800);
    $ffile= fopen("indexc/$duze$randoms.html", "a");
    fwrite($ffile,"$bot[1]");
    fclose($ffile);
    }
    echo "$i tane alındı"; 
    $saymayi_bitir = acilma_suresi(); $basla = $saymayi_bitir - $saymaya_basla; echo "Sayfa " . substr($basla, 0, 5) . " saniye oluşturuldu.";
    ?>
    File_get_contents
    <?
    function acilma_suresi (){
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];
    return $sec + $usec;
    }
    $saymaya_basla = acilma_suresi();
    $i = 1;
    while ($i <= 5) {
    $i++;
    $site= file_get_contents("http://www.biyografi.net/kisiyazdir.asp?kisiid=$i");
    preg_match('#<font face="verdana" size="5" color="red">(.*?)       		<center>#si',$site,$bot);
    preg_match('#<font face="verdana" size="5" color="red">(.*?)</font>#si',$site,$bot1);
    $duze = substr("$bot1[1]", 0, 4);
    $randoms = mt_rand(411554, 790800);
    $ffile= fopen("index/$duze$randoms.html", "a");
    fwrite($ffile,"$bot[1]");
    fclose($ffile);
    }
    echo "$i tane alındı"; 
    $saymayi_bitir = acilma_suresi(); $basla = $saymayi_bitir - $saymaya_basla; echo "Sayfa " . substr($basla, 0, 5) . " saniye oluşturuldu.";
    ?>
    Localda curl için ne yapmam lazım? Bu arada teşşekürler +rep veriyorum.
  • 25-12-2008, 23:26:05
    #7
    herhangi birşey yapmana gerek yok,.. curl eklentisi kurulu olması lazım, ama sanırım varsayılan olarak geliyor,..
  • 25-12-2008, 23:30:57
    #8
    Üyeliği durduruldu
    curl iyi bişidir her webmaster a lazimdir
  • 26-12-2008, 18:44:26
    #9
    Eposta Aktivasyonu Gerekmekte
    Arkadaşlar baya ilerledim.Tek tek veri çekebiliyorum.While döngüsüne soktum, mesala 10 tane çek deyince
    Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\PHP\bot\bot.php on line 12
    diyor.2-3 tane çek deyince normal .ekiyor ama belli bir miktardan sonra çekmiyor.Hata versede dosyaya yazıyor ama belli bir miktar yazıyor. 4-5 tane yazıyor yani.10 tane istiyorum halbuki.
    Neden olabilir arkadaşlar acaba?Anladığım kadarıyla zaman aşımına uğruyor?