Starcraft2 için nasıl değer bahis tarayıcısı oluştururum

Herkese merhaba!

Ben özgür bir geliştiriciyim ve e-sporları çok seviyorum.

Ve bir sporun olduğu yerde, bahisçiler var. Bahis şirketlerinin nasıl çalıştığını uzun zamandır anladım ve bu alandaki ilginç noktaları belirlemek için çok sayıda yazılım yazmaya çalıştım.

Nispeten yakın zamanda, küçük gelişimlerimi yayınlayacağım küçük bir açık kaynak topluluğu oluşturmaya karar verdim ve aynı zamanda, ilgileniyorsanız, buna katılabilirsiniz.

İşte bu https://github.com/BETTING-CODE

Ama bu makalenin noktasına gelelim.

Bahis şirketlerinin ne sıklıkta hata yaptığını ve belirli bir bahsi ne kadar abarttığını merak ettim. Cevap yüzeye sık sık uzanıyor, bu da bu tür teklifleri bulabileceğimiz anlamına geliyor.

Esports'ta bir disiplin nedir, olayların en basit sonuçlarıdır? Star StarCraft2!

Bu disiplin için, bahis şirketi çok fazla bahis seçeneği sunmuyor, sadece iki tane var – birinci veya ikinci oyuncu kazanacak.

İlk görevimiz her oyuncu için katsayıları elde etmektir. Bunu nasıl yapabiliriz?

"Kuklacı".

Bunun gibi.

const kuklacı = gerektirir('Kuklacı');

zaman uyumsuz fonksiyon get_money_line() {
    const tarayıcı = bekliyoruz kuklacı.başlatmak();
    const sayfa = bekliyoruz tarayıcı.yeni sayfa();
    bekliyoruz sayfa.git('Https://gg22.bet/en/starcraft2', { kadar bekleyin: 'Networkidle2' });
    bekliyoruz tarayıcı.kapat();
}

Tarayıcıyı açtık, ihtiyacımız olan sayfayı bahis şirketinin oranları ile açtık ve kapattık.

Sayfadaki tüm içerikle ne yapabiliriz?
Evet, her şey normal bir tarayıcıda olduğu gibidir.

Örneğin, sayfada görüntülenmekte olan tüm oyunları alın.

const starcraft2matches = bekle page.evaluate (() => {
        nesne = []
        j = 0 olsun
        izin ver names = document.querySelectorAll ('.__ app-LogoTitle-name.LogoTitle__name ___ 2LTlu')
        oranlar = belge.querySelectorAll ('. odd__ellipsis___3b4Yk')
        let date_time = document.querySelectorAll ('. dateTime__date___147AU')

        işlev get_day (metin) {
            if (text.indexOf ('BUGÜN')! == -1) {
                gün izin = yeni Tarih ()
                day = day.toLocaleDateString ('en-EN', {ay: 'kısa', gün: 'sayısal'})
                day = day.toUpperCase ()
                return text.replace ('BUGÜN', gün)
            } Başka {
                metin döndür
            }
        }

        for (let i = 0; i <names.length; i ++) {
            eğer (i == 0)
                nesne[j] = []
            eğer (i% 2 == 0 && i! = 0) {
                j ++
                nesne[j] = []
                nesne[j].push ({zaman: get_day (tarih_saat)[j].innerText), name: names[i].innerText, oranlar: oranlar[i].innerText})
            } Başka {
                nesne[j].push ({zaman: get_day (tarih_saat)[j].innerText), name: names[i].innerText, oranlar: oranlar[i].innerText})
            }
        }

        dönüş nesnesi
    })

Fark etmiş olabileceğiniz gibi, bir sayfa ile çalışmak geliştirme araçlarında yapabileceklerimize çok benzer.

Bu şekilde sayfadaki tüm eşleşmeleri alır ve bir dizi oluştururuz. Ne kadar serin?

Şimdi ihtiyacımız olan tüm maçlara sahibiz. Ancak olası kazanma yüzdelerini nereden bulabiliriz?

Sonuçta, bahis şirketinde gördüğümüz oranlar yüzdelerden başka bir şey değil, birimi katsayıya bölmeyi deneyin, ne elde ettiniz?

Burada, bu site de açık kaynaksa, Starcraft2'deki büyük bir maç veritabanı olan aligulac adlı oldukça ilginç bir sitenin yardımına geleceğiz.

Aligulac'tan nasıl veri alacağımızı öğrenelim.

Önce buraya gidip API anahtarını alalım http://aligulac.com/about/api/

Harika, şimdi senaryomuza birkaç paket ekleyelim.

const fs = zorunlu ('fs')
const sc2 = zorunlu ('./ sc2moneyline')
const aligulac_api_key = 'your-api-key'
const node_fetch = zorunlu ('düğüm getirme')

Düğüm getirme nedir? Bu, NodeJS için tarayıcıdan getirme işlevinin bir uygulamasıdır.

Şimdi aligulac'ımız için birkaç fonksiyon yazalım.

zaman uyumsuz fonksiyon search_players(isim) {
    dönüş node_fetch(`Http://aligulac.com/search/json/?q=$ {adı} aranacak_ifade = players`)
        .sonra(res => res.json())
}

zaman uyumsuz fonksiyon get_info_player(İD) {
    dönüş node_fetch(`Http://aligulac.com/api/v1/player/?id=$ {id} & apikey = $ {aligulac_api_key}`)
        .sonra(res => res.json())
}

zaman uyumsuz fonksiyon get_predictmatch(id1, kimlik2) {
    dönüş node_fetch(`Http://aligulac.com/api/v1/predictmatch/$ {id1} $ {ID2} /? Apikey = $ {aligulac_api_key} bo = 3 ')
        .sonra(res => res.json())
}

Harika, şimdi sizinle birlikte, bahis şirketinin çizgisi, oyuncular hakkındaki tüm bilgiler ve her şey değer bahisleri bulmaya hazır.

Onları nasıl buluyorsun?

Formül, oyuncuların birbirleriyle nasıl oynadıklarını bilerek oldukça basittir, bir oyuncunun diğerine göre zafer yüzdesini tahmin edebiliriz, P olarak gösteririz, ayrıca bahisçinin katsayısına sahibiz, bunu K olarak gösteririz, sonra formülümüz böyle bir şeye benzeyecek.

> 1 ise, bu aşırı değerli tekliftir.

Artık kendiniz bir HTML sayfası oluşturabilir misiniz?

Nasıl çalıştığını görebilmeniz için bunun için bir depo oluşturdum.
https://github.com/BETTING-CODE/starcraft2-value-bet-generator

Umarım bu konuyla biraz ilgilenirsiniz ve ayrıştırma ve bilgi toplama gibi teknolojileri anlayabilirsiniz.
Mutlu kodlama!

Alternatif Metin

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir