2017-01-22 10 views
0

人々は、おそらくそのようにウェブサイトの聞いたことがある:http://csgo.steamlytics.xyz/学習のためのNodeJS |蒸気を扱うスチーム市場分析

私も、私は、彼らが持っているように、やや同じAPIをしようとするだろうが、私は1つの質問があります。私は各項目の名前を取得し、そこからデータを取得してDBに格納するためにSteamマーケットの履歴URLへのリクエストを行う部分に行った。 6844個のアイテムがあり、2秒ごとにタイムアウトを設定していますので、数学の権利を行えば、データベースにすべてのアイテムデータを取得するまでに6時間かかります。質問はここにあります、プロセスをスピードアップする方法がありますか?スチームリサイクリングサイトについては、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); 
} 

答えて

0

これらの要求をしているとの問題は、あなたがやっているリクエストの量を行う場合は、料金が本当に速い制限してしまうことがあります。要求の制限はIPごとであり、そこにソリューションがあります。より多くのIPが必要です。いずれにしても、IPを変更するためのサーバー用のAPIはありますが、プロキシも機能しています。

steamlyticsの作成者は、要求を行うときにプロキシを介して回転するパッケージを作成しました。このパッケージはnode-rotating-proxy-managerと呼ばれます。

そうでなければ、私はスチームリキッドが市場価格を別々に取り込んでいることを知っています。彼は最近完了したすべての市場取引を保持するこのurlを使用しています。これを毎秒3回スキャンする必要があります。平均価格ですべての価格を取得すると思います。市場の限界(〜400 $)を上回る商品については、商品の値段を上げるためにOPSkinsなどの他のソースを使用する必要があります。

+0

ありがとうございましたが、私はどのように彼がすべてのアイテムの平均を得ることができるのか理解できません、それは最近完了したばかりですが、JSONが見つからないという点で、価格は? –

+0

ええ、彼はこのエンドポイントを毎秒3回チェックしています。だから彼はいつもこれを24/7チェックしている。時間がたつと(私は1ヶ月以上を信じています)、彼は正確な価格を与えることができるほど多くのデータを集めました。 [APIのドキュメント](http://csgo.steamlytics.xyz/api)を参照してください。これらのデータがすべて集められた後、彼は正確な価格を得るためにデータセット上でアルゴリズムを実行しています。 – igeligel

+0

ねえ、私のURLはどうやって改善されていませんか?それは2015年から2017年までの価格を持っています(私は最初からすべてのアイテムを手に入れ始めたとは信じていません)。 –