簡體   English   中英

NodeJS | 蒸汽市場分析儀

[英]NodeJS | Steam Market Analyzer

與Steam交易的人可能聽說過這樣的網站: http : //csgo.steamlytics.xyz/

為了學習,盡管我會嘗試像他們一樣做一些相同的API,但是我有一個問題。 我已經完成了這一部分,在這里獲取每個商品的名稱,並請求Steam市場歷史URL,然后從那里獲取數據並將其放入數據庫。 有6844個項目,我為每個請求設置了2秒的超時時間,因此,如果我對數學進行了正確的設置,則需要大約6個小時才能將所有項目數據存儲到數據庫中。 問題在這里,是否有可能加快這一進程? 關於Steamlytics網站,他們每12小時更新一次數據,所以我不認為他們每次6小時都會更新價格。 這是我的代碼:

for (var i = 0; i < names.items.length; i++) {
    setTimeout(function(i) {
        var name = names.items[i].market_hash_name;
        scrapeItems(names.items[i].market_hash_name, function(data) {
            var total = 0;
            var price = 0;
            var average = 0;
            var count = 0;
            var data = JSON.parse(data);
            for (var i = 0; i < data.prices.length; i++) {
                var dataa = {
                    name: name,
                    date: data.prices[i][0],
                    price: data.prices[i][1],
                    sales: data.prices[i][2]
                };
                connection.query('INSERT INTO item_histories SET ?', dataa, function(err) {
                    if (err) {
                        console.log(err);
                    } else{
                    }
                });
            }
        });
        console.log("Inserted data to DB " + name);
    }, i * 2000, i);
}

進行這些請求的問題在於,如果您要執行的請求數量很大,您就會很快受到速率的限制。 請求限制是每個IP的,您可以找到解決方案。 您需要更多的IP。 無論哪種方式,都有用於服務器更改IP的API,但是代理也可以工作。

Steamlytics的創建者創建了一個程序包,以便在處理請求時輪換您的代理。 該軟件包稱為node-rotating-proxy-manager

否則,我知道蒸汽分解劑將以不同的方式獲取市場價格。 他正在使用該網址保存所有最近完成的市場交易。 您需要每秒掃描此3次,我相信平均可以得到所有價格。 對於超出市場限額(〜400 $)的商品,您需要使用OPSkins等其他來源來獲得商品的好價格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM