alın size basit bir örnek.
bir siteye girdiniz .kodları alacaksınız.html kaynak kodlarıda şunlar
Başlık
buradaki başlığı alalım
preg_match('#
(.*?)
#si',$html,$baslik);
echo $baslik[1];
açıklamalar
(.*?) işareti yerine 0-9 a-z yazabilirsiniz. bunlar sadece sayılar ve sadece rakamlar gibi.ama adam orada hem harf hem rakam kullanırsa senin bot o veriyi alamaz.yani ne olursa olsun hepsini al demen yeterli..
peki neden echo $baslik[1] dedik.o sayıyı neye göre belirliyoruz. baştan (.*?) işaretlerini say.benim aradığım birinci sırada.o yüzden 1. neden ##si,karakter büyük küçük vsvs sorun yaşamayayım diye.preg_match kullanırken ",' ? gibi karakterlerin önüne \ çekmen gerekiyor.bununla gerekmiyor ondan ##si arasında kodlarım.
ikinci bir örnek
1-liste
preg_match('#
(.*?)-(.*?)
#si',$html,$baslik);
echo $baslik[1].'-'.$baslik2;
iki örnekte aynı sonucu verdi.ama ikinci örnek biraz daha detaya girer. yani ikinci örneği başlığı başlık şeklinde olanları değilde 1-liste şeklinde olanı almak için kullanırsın.ilk örnek başlık ve 1-liste değerini alır. 2. örnek ise sadece 1-liste değerini alır.
başlık1
başlık2
buradaki iki değer içinde
preg_match_all('#
(.*?)
#si',$html,$baslik);
bununda çıktılarını
echo '
';
var_dump($baslik);
echo '
';
yaparak baslik değerlerini görürsünüz ve dizi olduğunu farkedersiniz.ona göre for foreach vsvs. ... döngülerini yazarsınız.
bazı siteler botu farkedebiliyor.bu yüzden bot ayarlamadan önce sitenin html bilgilerini alın ve ekrana bastırın.istediğiniz gibi çıktı veriyorsa işleme devam.vermiyorsa artık neyin sizi engellediğini bulup onu geçmeniz gerkecek.