• 11-12-2021, 22:58:20
    #1
    Üyeliği durduruldu
    selam arkadaşlar php de bir konuda takıldım şu siteden bu site telefonları çekmek istiyorum.ama çekemedim şöle bir kod yazdım cul ile resimleri çekebiliyorum ama yazıları çekemiyorum.lütfen yardım edermisiniz büyük bir ihtimalle preg_match_all'da sorun olabilir işte kodlarım:
    $ch= curl_init();
    
    curl_setopt_array($ch,[
    CURLOPT_URL => 'https://www.olx.ro/animale-de-companie/animale-de-companie/',//buranın adresi degistirilcek
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => 1
    
    
    
    ]);
    
    $veri = curl_exec($ch);
    
    
    curl_close($ch);
    // 
    preg_match_all('/img class="fleft" src="(.*?)"/',$veri,$sonuc);
    
    preg_match_all('@<strong>(.*?)</strong>@',$veri,$yazi);
    
    echo "<pre>";
    print_r($yazi);
    echo "</pre>";
    $i=0;
    foreach($sonuc[1] as $key) {
    
    
    
    
    
    
    
    
    
    echo $yazi[0][$i]."&nbsp"."<img src='".$key."' style='height:50px; width:50px;'/>.<br>";
    
    $i++;
    
    }
  • 11-12-2021, 23:28:59
    #2
    Şu sayfaya POST gönderilip, HTML sonuç alınmaktadır.
    https://www.olx.ro/ajax/search/list/

    Şu şekilde çalıştığını görebilirsiniz.
    <?php
    function minify($buffer) {
        $search = array(
            '/\>[^\S ]+/s', 
            '/[^\S ]+\</s',
            '/(\s)+/s'      
        );
        $replace = array(
            '>',
            '<',
            '\\1'
        );
        $buffer = preg_replace($search, $replace, $buffer);
        $buffer = str_replace('> <', '><', $buffer);
        $buffer = str_replace("\t", '', $buffer);
        $buffer = preg_replace('/<!--.*?-->/ms', '', $buffer);
        return $buffer;
    }
    
    $ch = curl_init();
    curl_setopt_array($ch, [
            CURLOPT_URL => 'https://www.olx.ro/ajax/search/list/',
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_POST => 1,
            CURLOPT_POSTFIELDS => http_build_query(array('search' => array('category_id' => 101), 'page' => 1)),
            CURLOPT_RETURNTRANSFER => 1
        ]
    );
     
    $buffer = minify(curl_exec($ch));
    curl_close($ch);
    
    preg_match_all('#<img class="fleft" src="(.+?)" alt="(.+?)">#si', $buffer, $matches);
    
    foreach ($matches[2] as $index => $img) {
        echo '<li>';
        echo '<figure>';
        echo '<img src="' . $matches[1][$index] . '" style="width:216px;height:152px;object-fit:cover;">';
        echo '<figcaption>' . $matches[2][$index] . '</figcaption>';
        echo '</figure>';
        echo '</li>';
    }
  • 11-12-2021, 23:51:06
    #3
    Üyeliği durduruldu
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Şu sayfaya POST gönderilip, HTML sonuç alınmaktadır.
    https://www.olx.ro/ajax/search/list/

    Şu şekilde çalıştığını görebilirsiniz.
    <?php
    function minify($buffer) {
        $search = array(
            '/\>[^\S ]+/s',
            '/[^\S ]+\</s',
            '/(\s)+/s'      
        );
        $replace = array(
            '>',
            '<',
            '\\1'
        );
        $buffer = preg_replace($search, $replace, $buffer);
        $buffer = str_replace('> <', '><', $buffer);
        $buffer = str_replace("\t", '', $buffer);
        $buffer = preg_replace('/<!--.*?-->/ms', '', $buffer);
        return $buffer;
    }
    
    $ch = curl_init();
    curl_setopt_array($ch, [
            CURLOPT_URL => 'https://www.olx.ro/ajax/search/list/',
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_POST => 1,
            CURLOPT_POSTFIELDS => http_build_query(array('search' => array('category_id' => 101), 'page' => 1)),
            CURLOPT_RETURNTRANSFER => 1
        ]
    );
     
    $buffer = minify(curl_exec($ch));
    curl_close($ch);
    
    preg_match_all('#<img class="fleft" src="(.+?)" alt="(.+?)">#si', $buffer, $matches);
    
    foreach ($matches[2] as $index => $img) {
        echo '<li>';
        echo '<figure>';
        echo '<img src="' . $matches[1][$index] . '" style="width:216px;height:152px;object-fit:cover;">';
        echo '<figcaption>' . $matches[2][$index] . '</figcaption>';
        echo '</figure>';
        echo '</li>';
    }
    hocam ne yaptınız siz bu ne ya?? hiç bişey anlamadım ben biraz açık anlatırsanız
  • 11-12-2021, 23:55:48
    #4
    Örnek verdiğiniz adres kaynağını görüntüleme yaparsanız, listenen verilerin kaynakta olmadığını göreceksiniz yani ajax ile sayfaya çağırılıyor.
    Verileri alacağınız sayfa farklı.
    Kodda ekstra bir şey yok sadece minify adında bir fonksiyon ekledim, oda gelen HTML verinin gereksiz boşlukları vs temizleyip daha sağlıklı ayıklayabilmek için.
  • 12-12-2021, 00:09:44
    #5
    Üyeliği durduruldu
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Örnek verdiğiniz adres kaynağını görüntüleme yaparsanız, listenen verilerin kaynakta olmadığını göreceksiniz yani ajax ile sayfaya çağırılıyor.
    Verileri alacağınız sayfa farklı.
    Kodda ekstra bir şey yok sadece minify adında bir fonksiyon ekledim, oda gelen HTML verinin gereksiz boşlukları vs temizleyip daha sağlıklı ayıklayabilmek için.
    Siz şunumu demek istiyorsunuz hocam veriler JavaScript ile yani ajax ile geliyor bu yüzden ben verileri çekemedim
  • 12-12-2021, 00:21:10
    #6
    Evet aynen öyle. Chrome konsol'dan Network / Fetch/XHR incelerseniz eğer o sayfaya POST edildiğini görürsünüz.
    Betmen35 adlı üyeden alıntı: mesajı görüntüle
    Siz şunumu demek istiyorsunuz hocam veriler JavaScript ile yani ajax ile geliyor bu yüzden ben verileri çekemedim
  • 12-12-2021, 00:29:10
    #7
    Üyeliği durduruldu
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Evet aynen öyle. Chrome konsol'dan Network / Fetch/XHR incelerseniz eğer o sayfaya POST edildiğini görürsünüz.
    Hocam şimdi anladım çok teşekkür ederim peki bunun %100 çözümü nedir?
  • 12-12-2021, 00:30:20
    #8
    Yani PHP bilginiz çok fazla az sanırım, onumu anlıyorum. Zaten çalışan kodları size verdim, onun üzerinden kendi geliştirmenizi yapabilirsiniz.

    Betmen35 adlı üyeden alıntı: mesajı görüntüle
    Hocam şimdi anladım çok teşekkür ederim peki bunun %100 çözümü nedir?
  • 12-12-2021, 00:40:12
    #9
    Üyeliği durduruldu
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Yani PHP bilginiz çok fazla az sanırım, onumu anlıyorum. Zaten çalışan kodları size verdim, onun üzerinden kendi geliştirmenizi yapabilirsiniz.
    Yok yanlış anlamışsınız PHP bilgim varda benimde bilmediğim şeyler var sonuçta mükemmel değiliz..fakat yapacağım şey o post edilen Sayfa üstünden verileri çekmek olucak anladım.