lostyazilim
tr.link

Curl ile belirli bir alanı çekme

6 Mesajlar 1.490 Okunma
lstbozum
tr.link

mrhydgn mrhydgn Webmaster Kullanıcı
  • Üyelik 19.08.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Webmaster
  • Konum Sakarya
  • Ad Soyad E** A**
  • Mesajlar 54
  • Beğeniler 24 / 6
  • Ticaret 0, (%0)
Merhabalar. https://www.livebitcoinnews.com/news/bitcoin-news/ linkteki sayfada yer alan haberleri çekmek istiyorum. Fakat her haber için post id farklı olduğundan thumbnail, başlık, açıklama vs. alanlarını parçalayamıyorum. Örnek kod aşağıda yer almaktadır. Bu konuda yardımcı olabilir misiniz ?


function startBot($site_url , $timeout = 5)
{

$ch = curl_init();

$tarayici = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0';

curl_setopt($ch, CURLOPT_URL,$site_url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_TIMEOUT , $timeout);
curl_setopt($ch, CURLOPT_USERAGENT , $tarayici);

$result = curl_exec($ch);
curl_close($ch);

return $result;

}

$kaynak = startBot('https://www.livebitcoinnews.com/news/bitcoin-news/');

preg_match_all('@

(.*?)

@si' , $kaynak , $cik);
preg_match_all('@(.*?)@si' , $kaynak , $cikti);

echo "
";

//print_r($kaynak);
echo "
";

for($sayi = 0; $sayi < 9; $sayi++) {
echo '';
echo $cik[0][$sayi];
echo $cikti[0][$sayi];
echo "";
}
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Regex bir noktadan sonra zaman kaybı, bunun yerine işin mantığına uygun olarak DOM'da selectors mantığını PHP tarafında uygulamalısın.
mrhydgn

kişi bu mesajı beğendi.

no time for caution

mrhydgn mrhydgn Webmaster Kullanıcı
  • Üyelik 19.08.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Webmaster
  • Konum Sakarya
  • Ad Soyad E** A**
  • Mesajlar 54
  • Beğeniler 24 / 6
  • Ticaret 0, (%0)
Decimas Teşekkürler, file_get_html mantığı ile kolay bir şekilde istediğim sonuca ulaştım. Ek olarak belirtmeyi unuttuğum bir nokta var. Çektikten sonra sayfada sürekli olarak bir yenileme oluyor. Bunun önüne geçebilir miyiz ? Ya da alternatif olarak dbye kaydedip öyle mi basmalıyım ?
 

 

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
mrhydgn tüm içeriği doğrudan basıyorsan belki içinde yenileme kodu olduğu için yapabilir.
 

 

no time for caution
wmaraci
wmaraci

basich basich WM Aracı Kullanıcı
  • Üyelik 24.08.2018
  • Yaş/Cinsiyet 28 / E
  • Meslek Maliyeci
  • Konum Uşak
  • Ad Soyad L** H**
  • Mesajlar 890
  • Beğeniler 109 / 319
  • Ticaret 8, (%100)
str_replace() Fonksiyonlu kullanarak yenileme kodunu kaldırabilirsiniz
 

 

mrhydgn mrhydgn Webmaster Kullanıcı
  • Üyelik 19.08.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Webmaster
  • Konum Sakarya
  • Ad Soyad E** A**
  • Mesajlar 54
  • Beğeniler 24 / 6
  • Ticaret 0, (%0)
Teşekkürler, cssleri de ekledim ana siteden. Bahsettiğim yenileme düzeldi.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al