• 25-04-2018, 09:05:43
    #1
    Merhabalar, güncel borsa istatistiklerini gösteren bir web sitesi yapmaya başladım. Ancak bir yerde takıldım. Sadece fikirlerinizi istiyorum. Amacım şu sayfadaki "technicals-root" id sinin içerisindeki verileri çekmek. Chrome jsquery kodunu işledikten sonra verileri görebiliyor ancak cURL için fikir ve öneri lazım. Teşekkürler.
  • 25-04-2018, 09:26:33
    #2
    Tam olarak ne ihtiyacınız var bilmiyorum ama temel mantık şu:
    önce bir php sayfası yapıp, curl ile sayfa html'ini cekip parcala, istediğin veriyi json olarak ekrana yazdır.sonra sitendendeki sayfandan bu php sayfasına ajax cagrısı ile bu sayfayı cagır. Json olarak gelen veriyi ekrana yazdır. curl örneği gugıl da çok.
    kolay gelsin.
  • 25-04-2018, 09:29:17
    #3
    crooper adlı üyeden alıntı: mesajı görüntüle
    Tam olarak ne ihtiyacınız var bilmiyorum ama temel mantık şu:
    önce bir php sayfası yapıp, curl ile sayfa html'ini cekip parcala, istediğin veriyi json olarak ekrana yazdır.sonra sitendendeki sayfandan bu php sayfasına ajax cagrısı ile bu sayfayı cagır. Json olarak gelen veriyi ekrana yazdır. curl örneği gugıl da çok.
    kolay gelsin.
    yok hocam o iş bende, burda çekilecek veri js içerisinden oluşturuluyor. Bunu parse etmek lazım. Bir şeyler deniyorum bakalım. Buraya yazmamda ki amaç, daha önce böyle bir durumla karşılaşan birisinin fikrini almak.
  • 25-04-2018, 09:30:10
    #4
    Şimdi hocam datayı öyle almak yerine o kısım kaynak kodda yok backbone ile client side da oluşuyor. Fakat datanın kaynağı

    https://scanner.tradingview.com/crypto/scan
    adresine POST ediyo istediği datayı php koduda budur.
    $postField = "{"symbols":{"tickers":["BITTREX:ADABTC"],"query":{"types":[]}},"columns":["Recommend.Other","Recommend.All","Recommend.MA","RSI","RSI[1]","Stoch.K","Stoch.D","Stoch.K[1]","Stoch.D[1]","CCI20","CCI20[1]","ADX","ADX+DI","ADX-DI","ADX+DI[1]","ADX-DI[1]","AO","AO[1]","Mom","Mom[1]","MACD.macd","MACD.signal","Rec.Stoch.RSI","Stoch.RSI.K","Rec.WR","W.R","Rec.BBPower","BBPower","Rec.UO","UO","EMA10","close","SMA10","EMA20","SMA20","EMA30","SMA30","EMA50","SMA50","EMA100","SMA100","EMA200","SMA200","Rec.Ichimoku","Ichimoku.BLine","Rec.VWMA","VWMA","Rec.HullMA9","HullMA9","Pivot.M.Classic.S3","Pivot.M.Classic.S2","Pivot.M.Classic.S1","Pivot.M.Classic.Middle","Pivot.M.Classic.R1","Pivot.M.Classic.R2","Pivot.M.Classic.R3","Pivot.M.Fibonacci.S3","Pivot.M.Fibonacci.S2","Pivot.M.Fibonacci.S1","Pivot.M.Fibonacci.Middle","Pivot.M.Fibonacci.R1","Pivot.M.Fibonacci.R2","Pivot.M.Fibonacci.R3","Pivot.M.Camarilla.S3","Pivot.M.Camarilla.S2","Pivot.M.Camarilla.S1","Pivot.M.Camarilla.Middle","Pivot.M.Camarilla.R1","Pivot.M.Camarilla.R2","Pivot.M.Camarilla.R3","Pivot.M.Woodie.S3","Pivot.M.Woodie.S2","Pivot.M.Woodie.S1","Pivot.M.Woodie.Middle","Pivot.M.Woodie.R1","Pivot.M.Woodie.R2","Pivot.M.Woodie.R3","Pivot.M.Demark.S1","Pivot.M.Demark.Middle","Pivot.M.Demark.R1"]}";
    
    
    $curl = curl_init();
    
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://scanner.tradingview.com/crypto/scan",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => $postField,
      CURLOPT_HTTPHEADER => array(
        "accept: */*",
        "accept-encoding: gzip, deflate, br",
        "accept-language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
        "cache-control: no-cache",
        "content-type: application/x-www-form-urlencoded",
        "origin: https://tr.tradingview.com",
        "referer: https://tr.tradingview.com/symbols/ADABTC/technicals/",
        "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36",
      ),
    ));
    
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    
    curl_close($curl);
    
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo $response;
    }

    sonuçta postfield da istediklerine göre sırasıyla
    {
        "data": [
            {
                "s": "BITTREX:ADABTC",
                "d": [
                    0.18181819,
                    0.29090908,
                    0.4,
                    59.763016,
                    66.93176,
                    61.155556,
                    72.62886,
                    77.64706,
                    78.33719,
                    43.00386,
                    72.804184,
                    43.908577,
                    36.372234,
                    15.04075,
                    39.79875,
                    8.6428,
                    0.000007107735,
                    0.000007894441,
                    0.00000351,
                    0.00000657,
                    0.0000023693935,
                    0.0000021047306,
                    0,
                    41.574207,
                    0,
                    -38.844444,
                    0,
                    0.0000013151895,
                    0,
                    45.270893,
                    0.000030910134,
                    0.00003059,
                    0.00003203,
                    0.000028897497,
                    0.000027973,
                    0.000027788315,
                    0.000025729667,
                    0.000027668662,
                    0.0000243118,
                    0.000027776945,
                    0.0000332614,
                    0.000025109692,
                    0.0000255454,
                    0,
                    0.00002773,
                    1,
                    0.000028777564,
                    -1,
                    0.00003160374,
                    null,
                    0.000009966667,
                    0.000015923333,
                    0.000022686667,
                    0.000028643333,
                    0.000035406665,
                    0.000048126665,
                    0.000009966667,
                    0.000014825707,
                    0.000017827626,
                    0.000022686667,
                    0.000027545706,
                    0.000030547628,
                    0.000035406665,
                    0.000018382,
                    0.000019548,
                    0.000020714,
                    0.000022686667,
                    0.000023046,
                    0.000024212,
                    0.000025378,
                    0.00000283,
                    0.00000978,
                    0.00001555,
                    0.0000225,
                    0.00002827,
                    0.00003522,
                    0.00004099,
                    0.000012945,
                    0.0000211975,
                    0.000025665
                ]
            }
        ],
        "totalCount": 1
    }
    şu şekilde
  • 25-04-2018, 09:32:59
    #5
    mehmetuken adlı üyeden alıntı: mesajı görüntüle
    Şimdi hocam datayı öyle almak yerine o kısım kaynak kodda yok backbone ile client side da oluşuyor. Fakat datanın kaynağı

    https://scanner.tradingview.com/crypto/scan
    adresine POST ediyo istediği datayı php koduda budur.
    $postField = "{"symbols":{"tickers":["BITTREX:ADABTC"],"query":{"types":[]}},"columns":["Recommend.Other","Recommend.All","Recommend.MA","RSI","RSI[1]","Stoch.K","Stoch.D","Stoch.K[1]","Stoch.D[1]","CCI20","CCI20[1]","ADX","ADX+DI","ADX-DI","ADX+DI[1]","ADX-DI[1]","AO","AO[1]","Mom","Mom[1]","MACD.macd","MACD.signal","Rec.Stoch.RSI","Stoch.RSI.K","Rec.WR","W.R","Rec.BBPower","BBPower","Rec.UO","UO","EMA10","close","SMA10","EMA20","SMA20","EMA30","SMA30","EMA50","SMA50","EMA100","SMA100","EMA200","SMA200","Rec.Ichimoku","Ichimoku.BLine","Rec.VWMA","VWMA","Rec.HullMA9","HullMA9","Pivot.M.Classic.S3","Pivot.M.Classic.S2","Pivot.M.Classic.S1","Pivot.M.Classic.Middle","Pivot.M.Classic.R1","Pivot.M.Classic.R2","Pivot.M.Classic.R3","Pivot.M.Fibonacci.S3","Pivot.M.Fibonacci.S2","Pivot.M.Fibonacci.S1","Pivot.M.Fibonacci.Middle","Pivot.M.Fibonacci.R1","Pivot.M.Fibonacci.R2","Pivot.M.Fibonacci.R3","Pivot.M.Camarilla.S3","Pivot.M.Camarilla.S2","Pivot.M.Camarilla.S1","Pivot.M.Camarilla.Middle","Pivot.M.Camarilla.R1","Pivot.M.Camarilla.R2","Pivot.M.Camarilla.R3","Pivot.M.Woodie.S3","Pivot.M.Woodie.S2","Pivot.M.Woodie.S1","Pivot.M.Woodie.Middle","Pivot.M.Woodie.R1","Pivot.M.Woodie.R2","Pivot.M.Woodie.R3","Pivot.M.Demark.S1","Pivot.M.Demark.Middle","Pivot.M.Demark.R1"]}";
    
    
    $curl = curl_init();
    
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://scanner.tradingview.com/crypto/scan",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => $postField,
      CURLOPT_HTTPHEADER => array(
        "accept: */*",
        "accept-encoding: gzip, deflate, br",
        "accept-language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
        "cache-control: no-cache",
        "content-type: application/x-www-form-urlencoded",
        "origin: https://tr.tradingview.com",
        "referer: https://tr.tradingview.com/symbols/ADABTC/technicals/",
        "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36",
      ),
    ));
    
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    
    curl_close($curl);
    
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo $response;
    }
    sonuçta postfield da istediklerine göre sırasıyla
    {
        "data": [
            {
                "s": "BITTREX:ADABTC",
                "d": [
                    0.18181819,
                    0.29090908,
                    0.4,
                    59.763016,
                    66.93176,
                    61.155556,
                    72.62886,
                    77.64706,
                    78.33719,
                    43.00386,
                    72.804184,
                    43.908577,
                    36.372234,
                    15.04075,
                    39.79875,
                    8.6428,
                    0.000007107735,
                    0.000007894441,
                    0.00000351,
                    0.00000657,
                    0.0000023693935,
                    0.0000021047306,
                    0,
                    41.574207,
                    0,
                    -38.844444,
                    0,
                    0.0000013151895,
                    0,
                    45.270893,
                    0.000030910134,
                    0.00003059,
                    0.00003203,
                    0.000028897497,
                    0.000027973,
                    0.000027788315,
                    0.000025729667,
                    0.000027668662,
                    0.0000243118,
                    0.000027776945,
                    0.0000332614,
                    0.000025109692,
                    0.0000255454,
                    0,
                    0.00002773,
                    1,
                    0.000028777564,
                    -1,
                    0.00003160374,
                    null,
                    0.000009966667,
                    0.000015923333,
                    0.000022686667,
                    0.000028643333,
                    0.000035406665,
                    0.000048126665,
                    0.000009966667,
                    0.000014825707,
                    0.000017827626,
                    0.000022686667,
                    0.000027545706,
                    0.000030547628,
                    0.000035406665,
                    0.000018382,
                    0.000019548,
                    0.000020714,
                    0.000022686667,
                    0.000023046,
                    0.000024212,
                    0.000025378,
                    0.00000283,
                    0.00000978,
                    0.00001555,
                    0.0000225,
                    0.00002827,
                    0.00003522,
                    0.00004099,
                    0.000012945,
                    0.0000211975,
                    0.000025665
                ]
            }
        ],
        "totalCount": 1
    }
    şu şekilde


    Öncelikle beni 2-3 saat ileri götürdüğünüz için çok teşekkür ederim. Bunu nasıl analiz ettiniz? Herhangi bir post-get gösteren eklenti mi kullandınız? Daha sonrasında farklı projelerde lazım olabilir. Teşekkürler.
  • 25-04-2018, 09:36:15
    #6
    karşı sitenin anasayfasına gittiğinzde istediğiniz veri yoktur çunku bu tarz siteler web soket aracılığıyla anlık guncellemeler alırlar. o zaman yapmanız gereken dogrudan siteye gitmek değilde, bu sayfayı actıgınızda o sayfaya cekilen sayfaya curl ile gitmek. gelen veri ham veridir onu yorumlamanız gerekir. aksi halde curl ile baglandıgınız sayfada bulunan javascriptler calısmaz, sayfadaki ajax cagrılarını kaynakta goremezsiniz.

    edit: arkadaş sagolsun dogrudan kaynak kodu vermiş
    en basit yöntem chrome da f12 ye basarak network kısmından sayfada ajax ile neler olup bittiğini takip edebilirsiniz.
  • 25-04-2018, 09:37:05
    #7
    Tek tools chrome devtools candır kandır. öncelikle datayı source kodda aradım json formatında bulamayınca chrome devtools da network tabında xhr yani ajax requestleri sırayla inceleyip önce websocket görünce dedim ahaa ama bunu websocketten almıyormuş websocketten anlık değişimleri alıyor. Ajax requestlere bakarkende ordayı datayı sağlayan sorgulara baktım ve buldum. Genelde benim ilerleme yöntemim bu şekilde. Kolay gelsin.
  • 25-04-2018, 10:27:52
    #8
    Yardımlarınız için teşekkürler. Önemli bir kısmı curl ile atlattık iyi günler, kolay gelsin.