Anlık Değişen Verileri Çekme Hakkında
-
Arkadaslar iddaa sonuç ve oranlarını çekerken verilerin sürekli değişiyor / değişebiliyor olmasından dolayı kısa aralıklarla request atmak durumunda kalıniyor. Doğal olarak bir süre sonra ip ban da kaçınılmaz hale geliyor.
WebBrowser gibi siteye bağlanarak gerçekleşen anlık değişimleri almanın yolu / yolları nelerdir ? Dil olarak önceliğim php ve python fakat başka diller olsa d sorun değil.
-
iddaa oranları çok zor hocam yeri geliyor saniyede 1000 tane sorgu oluyor :)
-
Benim de merak ettiğim bir konu, özellikle anlık borsa verilerin çekimi nasıl oluyor?
-
cahilliğime ver hocam , sadece bir fikir :D
Bu chrome'da önbelleği görüntüle kısmından doğru satır ve sütuna ulaşıp oradan çeksen olmaz mı ?
pokemon oyunu için zamanında öyle birşeyler yapmıştım sanırım :D
ama benimkisi sadece bütün pokemon isimlerini almakla alakalıydı , sürekli güncellenen bir yapı değildi yani
GodKlaus tarafından 22/Eyl/17 22:44 tarihinde düzenlenmiştir -
öncelikle emin olmadığımı dile getirerek söylim. phantom js ile sanırım yapabilirsin istediğini. browser mantıgıyla çalıştığı için bağlantıyı keep alive tutarak data çekmeyi sağlayabilirisn diye düşünüyorum. bir documentationlarına bak istersen varmı örnek bişi.
-
T
Hocam anlık verilerin olduğu sayfayı chrome ile aç, daha sonra chrome'un javascript console'unu açKonsola şunu ekle:
$('.score').on("DOMSubtreeModified",function(){ //T
console.log('div içeriği değişti'); //T
});
Bu kodu çalıştırdığında console'da, class'ını verdiğin div(ler) değiştiğinde "div içeriği değişti" goreceksin.
console.log'u şununla değiştirebilirsin (örnek olması açısından)
$('.score').on("DOMSubtreeModified",function(){
var id = $(this).parent().attr("match-id"); //T
var homescore = $(this).parent().find( .........); //T
var awascore = $(this).parent().find( .........); //T
// .........
// bu şekilde istediğn dataları al ve socket.io ile sunucuna ilet
var ocket = io("http(s)://localhost:8181");
ocket.emit("changed", id+"|"+homescore+"|"+awascore);
});
Metodun çalışması için socket.io çalışan NodeJS'li bir localhost sunucun olması gerekir. Bilgisayarına nodejs kurup, bir sunucu oluşturup, socket.io'yu import edip, 8181 portu listen etmen gerek. Gelen dataları da alıp localhost mysqle kaydedebilirsin. nodeJS in mysql driverı var ve çok İYİ -
Phantom js yd bir bakayim. @Cevdet hocam dediğin mantıklı bunu da araştırıp deneyeceğim. Cevaplar için teşekkürler.
-
Veya hiç nodeJS konusunu katmadan halledelim
$('.score').on("DOMSubtreeModified",function(){
var match = $(this).parent().attr("match-id"); //T
var homgol = $(this).parent().find( .........); //T
var depgol = $(this).parent().find( .........); //T
$.post("http://localhost/kaydet", {m:match,h:homgol, d:depgol},function(response) {});
});
Bu sefer de ajax ile gonderdik localhostuna, çalışması için sayfada jquerı olması gerekir. Jquerısiz sayfa kaldı mı? olmadı AngulaJS. Hiç olmadı direk JavascriptT
-
Cevdet bunu yazdı
Veya hiç nodeJS konusunu katmadan halledelim
$('.score').on("DOMSubtreeModified",function(){
var match = $(this).parent().attr("match-id"); //T
var homgol = $(this).parent().find( .........); //T
var depgol = $(this).parent().find( .........); //T
$.post("http://localhost/kaydet", {m:match,h:homgol, d:depgol},function(response) {});
});
Bu sefer de ajax ile gonderdik localhostuna, çalışması için sayfada jquerı olması gerekir. Jquerısiz sayfa kaldı mı? olmadı AngulaJS. Hiç olmadı direk JavascriptT
hocalar bu anlık güncelleme hiçlikten gelmiyor ya, güncellemeyi sağlayan dosyaya req attırılsa ya?
Ban yiyecek olsak bizim de ban yememiz gerekir kullanıcı olarak. Sonuçta sürekli arkada istek atıyoruz güncel kalmak için?
-
end bunu yazdıCevdet bunu yazdı
Veya hiç nodeJS konusunu katmadan halledelim
$('.score').on("DOMSubtreeModified",function(){
var match = $(this).parent().attr("match-id"); //T
var homgol = $(this).parent().find( .........); //T
var depgol = $(this).parent().find( .........); //T
$.post("http://localhost/kaydet", {m:match,h:homgol, d:depgol},function(response) {});
});
Bu sefer de ajax ile gonderdik localhostuna, çalışması için sayfada jquerı olması gerekir. Jquerısiz sayfa kaldı mı? olmadı AngulaJS. Hiç olmadı direk JavascriptT
hocalar bu anlık güncelleme hiçlikten gelmiyor ya, güncellemeyi sağlayan dosyaya req attırılsa ya?
Ban yiyecek olsak bizim de ban yememiz gerekir kullanıcı olarak. Sonuçta sürekli arkada istek atıyoruz güncel kalmak için?
Hocam genelde json formatında veri dönderen bir sayfa oluyor ve veriyi oradan alıp işliyor adamlar. Dediğin gibi değer döndüren sayfaya sürekli request atınca flood olarak algılayıp ip ban atıyor. Bunu ya yazılımsal olarakda yapmış olabilirler yada server flood koruması devreye giriyordur.
-
Benim gonderdiğim metodda anlık datalar kişinin web sayfasından local bir veritabanına kaydedilio. Bu kadar emek verdikten sonra localden web sunucuna gonderecek mekanizmaı da eklemek zor değil
Birçok metod var localdeki bir data'ı live sunucua gondermenin
Bu şekilde anlık data aynı zamanda sende de olur, gecikme zamanı da gonderilen requestlerin gecikmeleri kadar olur
T