lostyazilim
tr.link

PHP cURL Veri Çekme Sonrası Site Yavaşladı

8 Mesajlar 1.799 Okunma
lstbozum
tr.link

GNCWEBTASARIM GNCWEBTASARIM WM Aracı Kullanıcı
  • Üyelik 24.01.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek Kimyager
  • Konum Kırıkkale
  • Ad Soyad C** S**
  • Mesajlar 152
  • Beğeniler 56 / 10
  • Ticaret 1, (%100)
Merhaba değerli arkadaşlar haber sitemin ana sayfasında cURL ile bot eklentilerle hava durumu vs farklı sitelerden veri çekiyorum ama site açılırken zorlaniyor pagespeed baktığımda sunucu yükünü azaltın uyarısı alıyorum bot kodlarına eklemem gereken birşeyler olabilir mi bu sorunu nasıl çözebilirim
 

 

wmaraci
reklam

GNCWEBTASARIM GNCWEBTASARIM WM Aracı Kullanıcı
  • Üyelik 24.01.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek Kimyager
  • Konum Kırıkkale
  • Ad Soyad C** S**
  • Mesajlar 152
  • Beğeniler 56 / 10
  • Ticaret 1, (%100)
yok mu yardımcı olacak kimse
 

 

srkn12 srkn12 PHP - Javascript - Java Kullanıcı
  • Üyelik 28.03.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilişim
  • Konum Denizli
  • Ad Soyad S** K**
  • Mesajlar 411
  • Beğeniler 67 / 90
  • Ticaret 0, (%0)
Curl ana sayfa da mı? Eğer curl ana sayfa da çalışıyor ise hedef siteyi beklersin en temizi ajax ile yapmak
GNCWEBTASARIM

kişi bu mesajı beğendi.

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
çektiğiniz veriyi sitenizde cash olarak saklayıp, sitenizde gösterdiğiniz alanlara bu cash'ten veriyi çekerek basın. Bilgilerin yenilenme süresine göre cashe indirme yapabilirsin. Verileri kendi sitenden çekeceği için daha hızlı açılacaktır.
GNCWEBTASARIM

kişi bu mesajı beğendi.

wmaraci
wmaraci

GNCWEBTASARIM GNCWEBTASARIM WM Aracı Kullanıcı
  • Üyelik 24.01.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek Kimyager
  • Konum Kırıkkale
  • Ad Soyad C** S**
  • Mesajlar 152
  • Beğeniler 56 / 10
  • Ticaret 1, (%100)

srkn12 adlı üyeden alıntı

Curl ana sayfa da mı? Eğer curl ana sayfa da çalışıyor ise hedef siteyi beklersin en temizi ajax ile yapmak


aynen anasayfa üzerinde nasıl yapabilirim kodları versem üzerinde düzenleme yapabilir misiniz
 

 

GNCWEBTASARIM GNCWEBTASARIM WM Aracı Kullanıcı
  • Üyelik 24.01.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek Kimyager
  • Konum Kırıkkale
  • Ad Soyad C** S**
  • Mesajlar 152
  • Beğeniler 56 / 10
  • Ticaret 1, (%100)

Okan_IŞIK adlı üyeden alıntı

çektiğiniz veriyi sitenizde cash olarak saklayıp, sitenizde gösterdiğiniz alanlara bu cash'ten veriyi çekerek basın. Bilgilerin yenilenme süresine göre cashe indirme yapabilirsin. Verileri kendi sitenden çekeceği için daha hızlı açılacaktır.



nasıl yapabilirim aşağıdaki kodlar üzerinden veriyi çekiyorum


error_reporting(E_ALL);
$ch = curl_init("siteadresi");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36");
$zer = curl_exec($ch);
preg_match_all('@(.*?)@si',$zer,$ncek01);
preg_match_all('@
(.*?)
@si',$zer,$ncek02);
preg_match_all('@
(.*?)
@si',$zer,$ncek03);
preg_match_all('@
(.*?)
@si',$zer,$ncek04);

curl_close($ch);
 

 

r137 r137 WM Aracı Kullanıcı
  • Üyelik 22.12.2018
  • Yaş/Cinsiyet 34 / E
  • Meslek webdev
  • Konum İstanbul Avrupa
  • Ad Soyad A** C**
  • Mesajlar 17
  • Beğeniler 1 / 4
  • Ticaret 0, (%0)
idealde yapmanız gereken bot kodunu ana sayfa kodundan ayırmak yoksa her ana sayfa isteğinde bot veri çekmeye çalışır, veri çekme işlemi bitmeden de sayfa oluşturulmaz. bu da yavaşlamaya sebep olur.

havadurumu_cek.php gibi ayrı bir dosyada botu çalıştırıp sonucu veritabanına kaydedip anasayfada curl vs kullanmadan veritabanından okutursanız çok daha hızlı olur.

havadurumu_cek.php'yi de cron ile belli aralıklarla çalıştırmanız gerekir ki veritabanındaki veri güncel olsun. host panellerinde cron ayarları var.

havadurumu_cek.php

error_reporting(E_ALL);
$ch = curl_init("siteadresi");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36");
$zer = curl_exec($ch);
// burada $zer degiskenini veritabanina kaydediyoruz


anasayfa.php

// $zer i veritabanından çekiyoruz geri kalan kısım aynı
preg_match_all('@(.*?)@si',$zer,$ncek01);
preg_match_all('@
(.*?)
@si',$zer,$ncek02);
preg_match_all('@
(.*?)
@si',$zer,$ncek03);
preg_match_all('@
(.*?)
@si',$zer,$ncek04);

curl_close($ch);
GNCWEBTASARIM

kişi bu mesajı beğendi.

RagnarBlue RagnarBlue WM Aracı Kullanıcı
  • Üyelik 03.01.2022
  • Yaş/Cinsiyet 42 / E
  • Meslek Yazılımcı
  • Konum İstanbul Avrupa
  • Ad Soyad T** K**
  • Mesajlar 5
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)

İllaki veri tabanından değil de anlık siteden veri çekmek şart ise,

site açıldıktan 10 saniye sonra curl bağlantısını çalıştırın. javascript ile bunu yapabilirsiniz.  böylece sitenin açılış hızı etkilenmeyecek.

 

 

Hayatı şekillendiren programcılardır.
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al