Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

cURL ile aldığım içerik yoksa, sayfa atlamıyor

	$page = isset($_GET["page"]) ? $_GET["page"] : 1;
	$end = $_GET["end"]; // sayfanın bitiş nosu
	$arttir = $_GET["page"] + 1 ;
	
	if($page == $end) { 
		die("islem bitti.");	
	}


$getData = cURL("http://domain.com/id/" . $page ."");
	
	$explodeContent = explode("<div id=\"wv\">", $getData); 

	$say = count($explodeContent)-1;
	for ($i=1; $i<=$say; $i++) 
	{



if($say == $i) {
			$rand = md5(rand(1,99999));
			echo 'Devam ediyoruz sayfa '.$arttir.' ile... <meta http-equiv="refresh" content="10;URL=wall.php?page='.$arttir.'&end='.$end.'&rand='.$rand.'">';
		}

	}
	sleep(10); // sleep mode :]



Yapmak istediğim şu. www.domain.com/id/100 www.domain.com/id/101 www.domain.com/id/102 www.domain.com/id/103
Şeklinde, otomatik olarak bu sayfaları gezdirerek içerikte bulunan seçtiğim bölgeleri, preg_match ile veritabanına yazdırmak.. Veriler olduğu sürece, sorunsuz şekilde herşeyi alıp veritabanına yazdırma işleminde sorun yaşamıyor, ve ardından diğer sayfaya atlıyor.

Fakat bazı linkler kırık yani, içerik yok ve bu yüzden sayfada anasayfaya atıyor. www.domain.com/id/105 içerik olmadığında www.domain.com/ yönlendirme yapıyor. Böyle linkler wall.php?page=100&end=110 ile yaptığımda 105 numaraya geldiğinde sayfa takılıyor. ve duruyor, diğer sayfaya atlama yapmıyor.

Bu olayı nasıl çözerim? Böyle olunca otomatik çalıştıracağım botu çalıştıramıyorum çünkü tıkanacağını biliyorum.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • kralmermi adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    102 cevap - 6 soru
    sayfa idleri surekli 1 olarak artiyor ise gidecegi sayfayi bi yerde tuttur anasayfaya gidiyor ise orda bi kontrol yap gittigi sayfa index.php ise örnegin tutturdugun sayfa idsini 1 arttirarak devam ettir. böyle olabilir mi acaba desem nasil olur :)
    • modernpinkfloyd adlı üyenin fotoğrafı modernpinkfloyd
      Aslında mantıken söylediğin gibi veya değil. Ben aslında PHP de profesyonel değilim..
      Sayfa da içerik bulmaz ise, sayfa arttırmam gerekiyor. bu işlemi nasıl gerçekleştirebileceğimi bilmiyorum.
      9 yıl önce yazılmış
  • modernpinkfloyd adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    3 cevap - 6 soru
    Ya da bir arkadaşımız bana
    $explodeContent = explode("<div id=\"wv\">", $getData);

    Burada bu içeriği bulamadığında..

    if($say == $i) {
    $rand = md5(rand(1,99999));
    echo 'Devam ediyoruz sayfa '.$arttir.' ile... <meta http-equiv="refresh" content="10;URL=wall.php?page='.$arttir.'&end='.$end.'&rand='.$rand.'">';
    }

    bu kodu çalıştırmasını, eğer bulursa devam etmesini nasıl sağlarız? bence bu olayı yaparsak sorun çözülür diye düşünüyorum.. sizce?
    • kralmermi adlı üyenin fotoğrafı kralmermi
      senin yazdigina gore yaziyorum hocam

      
      <?php
        $explodeContent = explode("<div id=\"wv\">", $getData);
        if($explodeContent[1] == "")
      {
         yonlendirmeni yap
      }
      else
      {
        echo $explodeContent[1]; //burdada çekme işlemini yap eger bu sekilde calişacagini dusunuyorsan kod bu dene bakalim
      }
      ?>
      
      
      9 yıl önce yazılmış
    • modernpinkfloyd adlı üyenin fotoğrafı modernpinkfloyd
      Evet, sorunsuz çalışıyor gibi görünüyor ama, şimdi şöyle bir sorun çıktı açıkçası :)

      100 ile 150 arasında 1er adet arttırarak yükseltirken. 105'te veri olmadığında diğer sayfaya geçiyor.. ama o sayfaya geçtikten sonra... 106'da içerik var ama 106'ya geçince, içeriği çekmiyor. İçeriği çekmeden diğer sayfaya geçiyor.
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      106 DA İÇERİĞİ ÇEKMİYOR İSE DEMEKKİ SEN YANLIŞ BİR YERİ EXPLODE EDİYORYORSUN Bİ YERDE BİR ŞEYİ YANLIŞ ALIYORSUNKİ ATLAMA YAPIYOR BEN SENİN NASIL BİR HTMLİ PATÇALAMAYA AÇLIŞTIĞINI BİLEMEM O KISMI SEN BULUCAKSIN YAPAMASSAN YİNE YARDIMCI OLMAYA CALİSİRİM.
      9 yıl önce yazılmış
    • modernpinkfloyd adlı üyenin fotoğrafı modernpinkfloyd
      Tamamdır, senin bana verdiğin kodla sorunsuz çekiyor. İçerik olmayan kısımlar varmış farkedememişim.. Çekemediklerinde sayfa atlıyor, çektiklerindede devam ediyor şuan sorunsuz çalışıyor. Çok teşekkür ederim
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      KOLAY GELSİN.
      9 yıl önce yazılmış
  • phpogreniyorum adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    22 cevap - 7 soru
    explode yerine preg_match kullan

    veya curl ile server arası alışveriş çok hızlı olur

    ben bundan daha geniş bir sistemde time_out 3 veriyordumki 1000 adet siteye post atıyordum düşn

    bu yüzden her siteye söyle bir deger ver

    CURLOPT_TIMEOUT,5

    gibi 5 sn ne yaptı yaptı hemen sonra diğerine gecsinn



    veya

    $a = preg_match(desen vs..); eger aradıgın deger varsa 1 döner yoksa 0

    if($a==){
    atla
    }else{
    devam et
    }


    kısaca acele ile anlattım ama emin ol söylediklerimde kesin konusuyorum :)

    profilimden benim kişisel siteme bak orada curl örnekler var :)

    kolay gelsin
    • phpogreniyorum adlı üyenin fotoğrafı phpogreniyorum
      bu arada soruyu okumadaım kusura bakma

      site kapalıysada

      CURLOPT_HEADER,1

      gelen yerde 200 ok felan yazar

      Ok degeri varsa devam et yoksa es gec gibi koşullar yapabilirsin burada daha detaylı anlatmak isterdim ama sanırım mantıgı anlamışsındır :)
      9 yıl önce yazılmış