• 24-06-2023, 00:46:34
    #1
    Merhaba,
    Vakıf Katılım'ın sitesinden döviz kurunu çekmek istiyorum. $dom->find kısmında hata olduğu için sonuç gelmiyor. Yardımcı olabilir misiniz? Ben simple_html_dom.php kullanıyorum ama farklı yöntemle de sonuç alabiliriz. Yeter ki başarılı olsun.

    Kodlarım:
    <?php
    
    require_once 'simple_html_dom.php';
    
    $url = "https://vakifkatilim.com.tr/tr";
    
    // İstek gönder ve sayfayı al
    $response = file_get_contents($url);
    
    // İstek başarılıysa sayfayı simple_html_dom ile analiz et
    if ($response !== false) {
    $dom = str_get_html($response);
    
    // CSS seçicisini kullanarak hedeflenen öğeyi bul
    $hedef_ogeler = $dom->find("html body.gradient-body div.section div.container div.row div.col-lg-3 div.shadow-box.mb-0 div.tab-sections div#tab-kurlar.tab-section.tab-section-sm.home-standart-height.active div.table.table-light.mb-0 table tbody#home-exchange-rates-table-body tr td);
      
    if (count($hedef_ogeler) > 0) {
    // İlk hedeflenen öğenin içeriğini al
    $veri = $hedef_ogeler[0]->plaintext;
    
    echo "Veri: " . $veri;
    } else {
    echo "Hedeflenen öğe bulunamadı.";
    }
    } else {
    echo "Sayfaya erişilemedi.";
    }
    ?>
  • 24-06-2023, 00:59:45
    #2
    Tırnak işaretleri hatalı idi aşağıda düzelttiğim halini paylaştım <?php

    require_once 'simple_html_dom.php';

    $url = "https://vakifkatilim.com.tr/tr";

    // İstek gönder ve sayfayı al
    $response = file_get_contents($url);

    // İstek başarılıysa sayfayı simple_html_dom ile analiz et
    if ($response !== false) {
    $dom = str_get_html($response);

    // CSS seçicisini kullanarak hedeflenen öğeyi bul
    $hedef_ogeler = $dom->find("html body.gradient-body div.section div.container div.row div.col-lg-3 div.shadow-box.mb-0 div.tab-sections div#tab-kurlar.tab-section.tab-section-sm.home-standart-height.active div.table.table-light.mb-0 table tbody#home-exchange-rates-table-body tr td");

    if (count($hedef_ogeler) > 0) {
    // İlk hedeflenen öğenin içeriğini al
    $veri = $hedef_ogeler[0]->plaintext;

    echo "Veri: " . $veri;
    } else {
    echo "Hedeflenen öğe bulunamadı.";
    }
    } else {
    echo "Sayfaya erişilemedi.";
    }
    ?>
    Eğer hala doğru şekilde çalışmıyorsa, sayfa yapısını kontrol ederek doğru CSS seçicisini bulduğunuzdan emin olun
  • 24-06-2023, 12:03:23
    #3
    MySimS3k adlı üyeden alıntı: mesajı görüntüle
    Tırnak işaretleri hatalı idi aşağıda düzelttiğim halini paylaştım <?php

    require_once 'simple_html_dom.php';

    $url = "https://vakifkatilim.com.tr/tr";

    // İstek gönder ve sayfayı al
    $response = file_get_contents($url);

    // İstek başarılıysa sayfayı simple_html_dom ile analiz et
    if ($response !== false) {
    $dom = str_get_html($response);

    // CSS seçicisini kullanarak hedeflenen öğeyi bul
    $hedef_ogeler = $dom->find("html body.gradient-body div.section div.container div.row div.col-lg-3 div.shadow-box.mb-0 div.tab-sections div#tab-kurlar.tab-section.tab-section-sm.home-standart-height.active div.table.table-light.mb-0 table tbody#home-exchange-rates-table-body tr td");

    if (count($hedef_ogeler) > 0) {
    // İlk hedeflenen öğenin içeriğini al
    $veri = $hedef_ogeler[0]->plaintext;

    echo "Veri: " . $veri;
    } else {
    echo "Hedeflenen öğe bulunamadı.";
    }
    } else {
    echo "Sayfaya erişilemedi.";
    }
    ?>
    Eğer hala doğru şekilde çalışmıyorsa, sayfa yapısını kontrol ederek doğru CSS seçicisini bulduğunuzdan emin olun
    Sonuç değişmedi hocam, veri gelmiyor. Css selector yapısı doğru. Kontrol edebilirsiniz.
  • 24-06-2023, 15:12:41
    #4
    file get contents veya curl ile sayfa kaynağında olan veriler gelir, sonradan javascript ile oluşturulan verileri alamazsınız.
    kur verilerinin kaynağı: https://vakifkatilim.com.tr/plugins/...8f&language=tr
  • 24-06-2023, 16:37:09
    #5
    $response = json_decode(file_get_contents('https://vakifkatilim.com.tr/plugins/HomePageCurrencyData?langId=bf2689d9-071e-4a20-9450-b1dbdd39778f&language=tr'));
    
    print_r($response);
  • 24-06-2023, 18:25:42
    #6
    Json'dan kolayca çektik, teşekkür ederim arkadaşlar.