• 14-09-2023, 21:10:57
    #1
    https://www.tefas.gov.tr/FonAnaliz.aspx?FonKod=ST1

    Merhaba;
    Yukarıda belirtmiş olduğum siteden php de curl kullanarak "Son Fiyat (TL)" yazan değeri çekmek istiyorum.
    Rica etsem örnek kod paylaşır mısınız ?
    Şimdiden teşekkür ederim.
  • 14-09-2023, 21:13:46
    #2
    curl ile çekilirmi bilmiyorum fakat python ile çekebilirsiniz
  • 14-09-2023, 21:16:08
    #3
    örnek kod yazabilir misiniz ?
  • 14-09-2023, 21:25:18
    #4
    <?php
    $url = "https://www.tefas.gov.tr/FonAnaliz.aspx?FonKod=ST1";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $html = curl_exec($ch);
    curl_close($ch);
    
    $dom = new DOMDocument();
    @$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); // UTF-8
    $xpath = new DOMXPath($dom);
    
    $result = $xpath->query("//*[@id='MainContent_PanelInfo']/div[1]/ul[1]/li[1]/span");
    
    if ($result->length > 0) {
        $veri = $result->item(0)->nodeValue;
        echo "Çekilen Veri: " . $veri;
    } else {
        echo "Çalışmadı.";
    }
    ?>
    Buyur hocam.
  • 14-09-2023, 21:43:58
    #5
    cagriyilmaz adlı üyeden alıntı: mesajı görüntüle
    Buyur hocam. 
    			
    Teşekkürler. Sayfadaki diğer tüm verileri de dilediğim gibi okuyabiliyorum.
    Bir ricam daha olacak.

    https://www.tefas.gov.tr/FonKarsilastirma.aspx
    Bu sayfadan da veri okumak istiyorum. Aynı kodları kullanarak denediğimde capthca ile karşılaşıyorum.


    Bu sayfa açık iken "Tarih Aralığı " seçeneğine 13.09.2023 ve 14.09.2023 seçip karşılaştır butonuna basınca altta listede en başta çıkan fon kodu ve sonda çıkan getiri yazan bilgileri nasıl okurum ?
    Bir de bu şekidle bilgi girilerek veri okumayı öğrenmem gerekiyor.
  • 15-09-2023, 13:05:22
    #6
    igotek adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler. Sayfadaki diğer tüm verileri de dilediğim gibi okuyabiliyorum.
    Bir ricam daha olacak.

    https://www.tefas.gov.tr/FonKarsilastirma.aspx
    Bu sayfadan da veri okumak istiyorum. Aynı kodları kullanarak denediğimde capthca ile karşılaşıyorum.


    Bu sayfa açık iken "Tarih Aralığı " seçeneğine 13.09.2023 ve 14.09.2023 seçip karşılaştır butonuna basınca altta listede en başta çıkan fon kodu ve sonda çıkan getiri yazan bilgileri nasıl okurum ?
    Bir de bu şekidle bilgi girilerek veri okumayı öğrenmem gerekiyor.
    Tarih aralığı statik bir veri değil ajax ile geliyor bu yüzden PHP ile bunu yapmak biraz sıkıntılı. Belki fech post edilerek yapılabilir ama denemek için yeterli vaktim yok. Maalesef yardımcı olamıyorum bu konuda hocam. En kolay Python Selenium ile yapabilirsin.
  • 15-09-2023, 13:49:28
    #7
    cagriyilmaz adlı üyeden alıntı: mesajı görüntüle
    Tarih aralığı statik bir veri değil ajax ile geliyor bu yüzden PHP ile bunu yapmak biraz sıkıntılı. Belki fech post edilerek yapılabilir ama denemek için yeterli vaktim yok. Maalesef yardımcı olamıyorum bu konuda hocam. En kolay Python Selenium ile yapabilirsin.
    Python Selenium hostingde çalışır mı ?
    PHP dışında hiç deneyimim olmadı. Python Selenium baktım biraz bilgisayarda çalıştırmak için kurulması gereken programlar var. Diyelim kurduk yine php gibi komple yeniden mi yazmak gerekiyor ? yoksa php ile entegre çalışır mı ?
    Eğer öğrenmek gerekir ise mecbur öğreneceğim.
  • 15-09-2023, 13:56:26
    #8
    igotek adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler. Sayfadaki diğer tüm verileri de dilediğim gibi okuyabiliyorum.
    Bir ricam daha olacak.

    https://www.tefas.gov.tr/FonKarsilastirma.aspx
    Bu sayfadan da veri okumak istiyorum. Aynı kodları kullanarak denediğimde capthca ile karşılaşıyorum.


    Bu sayfa açık iken "Tarih Aralığı " seçeneğine 13.09.2023 ve 14.09.2023 seçip karşılaştır butonuna basınca altta listede en başta çıkan fon kodu ve sonda çıkan getiri yazan bilgileri nasıl okurum ?
    Bir de bu şekidle bilgi girilerek veri okumayı öğrenmem gerekiyor.
    Örnek curl isteğini ekliyorum, inceleyip uyarlayabilirsiniz kendinize.
    Terminale direkt yapıştırırsanız 06.09.2023 ve 07.09.2023 sonuç aralığını görürsünüz.
    curl 'https://www.tefas.gov.tr/api/DB/BindComparisonFundReturns' \
      --data-raw 'calismatipi=1&fontip=YAT&sfontur=&kurucukod=&fongrup=&bastarih=06.09.2023&bittarih=07.09.2023&fonturkod=&fonunvantip=&islemdurum=' \
      --compressed
  • 20-09-2023, 12:27:27
    #9
    cagriyilmaz adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    $result = $xpath->query("//*[@id='MainContent_PanelInfo']/div[1]/ul[1]/li[1]/span");
    Buyur hocam.
    F12 basıp konsola girdiğimizde table id olarak MainContent_PanelInfo bunu bulduk.Sonra tek tek saymadan /div[1]/ul[1]/li[1]/span bu bölümü bulmanın kolay yolu var mı ?
    Şimdilik tek tek sayarak buluyorum. Farklı sitelerde karışık oluyor bulmak zaman alıyor.