lostyazilim
tr.link

preg_match ile bitişi belli olmayan veri çekme

3 Mesajlar 2.435 Okunma
acebozum
tr.link

HidrolikAdam HidrolikAdam yok Kullanıcı
  • Üyelik 17.10.2013
  • Yaş/Cinsiyet 27 / E
  • Meslek yok.
  • Konum İstanbul Anadolu
  • Ad Soyad E** Ç**
  • Mesajlar 475
  • Beğeniler 316 / 114
  • Ticaret 1, (%100)
Tayfun Erbilen'in anlatımını yaptığı bot yapımı dersini izliyordum derste oyunskor dan veriçekme işlemlerine göre anlatmış oyunskor da her sayfanın sonunda .html uzantısı bulunmakta ancak benim veri çekeceğim site blogger tabanlı dolayısıyla preg_match çalıştırırken herhangi bir aralık belirtemiyorum.

Örnek olarak sitede kategoriler site içinde arama yapacak halde konumlandırılmış, ve link "http://doctorwhotumbolumler.blogspot.com.tr/search/label/1.%20Sezon" şeklinde ancak tüm kategoriler sezon değil örnek olarak "http://doctorwhotumbolumler.blogspot.com.tr/search/label/%C3%87izgi" adresinde de kategori mevcut.

preg_match("#http://doctorwhotumbolumler.blogspot.com.tr/search/label/(.*?)#", $kategori_link[$i], $url);
bu şekilde linki elde etmeye çalıştım ancak boş sonuç gelmekte bota.
Bunu nasıl halledebilirim yardımlarınızı esirgemeyin.
 

 

Mimarlık/Bilgisayar Mühendisliği Öğrencisi. Kendi halinde.
elektronikssl
webimgo

altunoren altunoren bilmenizgerek.com Kullanıcı
  • Üyelik 07.09.2013
  • Yaş/Cinsiyet 36 / E
  • Meslek Web Yazılım, Grafik Tasarım
  • Konum KKTC
  • Ad Soyad İ** A**
  • Mesajlar 356
  • Beğeniler 25 / 99
  • Ticaret 0, (%0)
Hocam mutlaka linkin başında ve sonunda " işareti vardır. preg_match'ı tek tırnak ile başlatıp ' # diyez işaretinden sonra " çift tırtnak ile devat ettirebilirsin. Bir de böyle dene. veya kaynak kodunun bir kısmını buraya yaz ona göre cevap verelim.

preg_match('#"http://doctorwhotumbolumler.blogspot.com.tr/search/label/(.*?)"#', $kategori_link[$i], $url);

Bu şekil
 

 

HidrolikAdam HidrolikAdam yok Kullanıcı
  • Üyelik 17.10.2013
  • Yaş/Cinsiyet 27 / E
  • Meslek yok.
  • Konum İstanbul Anadolu
  • Ad Soyad E** Ç**
  • Mesajlar 475
  • Beğeniler 316 / 114
  • Ticaret 1, (%100)

altunoren adlı üyeden alıntı

Hocam mutlaka linkin başında ve sonunda " işareti vardır. preg_match'ı tek tırnak ile başlatıp ' # diyez işaretinden sonra " çift tırtnak ile devat ettirebilirsin. Bir de böyle dene. veya kaynak kodunun bir kısmını buraya yaz ona göre cevap verelim.

preg_match('#"http://doctorwhotumbolumler.blogspot.com.tr/search/label/(.*?)"#', $kategori_link[$i], $url);

Bu şekil


index.php:





ÖĞRETİYOR - BOT







$Baglan = Baglan("http://doctorwhotumbolumler.blogspot.com.tr/p/blog-page_30.html");
preg_match("#
    (.*?)
    #", $Baglan, $kategoriler);

    preg_match_all("#
  • (.*?)
  • #", $digerler[1], $diger );
    preg_match_all("#
  • (.*?)
  • #", $kategoriler[1], $kategori );
    $diger_link = $diger[1];
    $diger_baslik = $diger[2];



    $kategori_link = $kategori[1];
    $kategori_baslik = $kategori[2];
    if ($kategori = $_GET["kategori"]){
    echo $GET_["sayfa"] = 1 ? header("http://localhost/bot/?kategori=".$_GET["kategori"]) : null;

    if ($sayfa = $_GET["sayfa"]){
    $link = "http://doctorwhotumbolumler.blogspot.com.tr/search/label/{$kategori}n-{$sayfa}";
    } else {
    $link = "http://doctorwhotumbolumler.blogspot.com.tr/search/label/{$kategori}n?max-results=100";
    }
    $kategoribaglan = Baglan($link);

    }
    ?>



















fonksiyon.php:
error_reporting(0);

function Baglan($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
$cikti = curl_exec($curl);
curl_close($curl);
return str_replace(array("\n","\t","\r"), null, $cikti);
}
?>

Hocam tüm dosyalar burada

Ek Olarak: hocam sezonlar bari çalışsın diyerek en sonun "n" ekledim.
 

 

Mimarlık/Bilgisayar Mühendisliği Öğrencisi. Kendi halinde.
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)