2

私は現在、すべてのデータ、または少なくともその特定の位置をログに記録し、優れた形式で相互運用可能なファイルに保存するグリースモンキースクリプトを作成したいサイトで忙しいです。それは可能ですか?たとえば、このデータスニペットを取得するとします。

 {"d":[["","","y","ZAR","1","49517","6458, 8270, 8270, 8270, 7635",null,"1.40","6458","0:13:30","","12","","C","30",null],["y","-00:00","y","ZAR","2","49593","6458, 6458, 6458, 6458, 6458",null,"2.92","6458","0:13:37","","12","","L","12","Ve4mYdrvkkQMKxBH1\/1VMtDTCDQBRspg5jB8jjY08zg="],["","","y","ZAR","3","49058","7456, 9216, 6458, 5153, 7456",null,"194.40","7456","0:00:31","","1100","","T",null,null],["","","y","ZAR","4","49597","2935, 6554",null,"1.22","2935","0:01:16","","12","","T",null,null],["","","y","ZAR","5","49590","4440, 0518, 5343, 2625, 4848",null,"0.95","4440","0:15:58","","5","","L",null,null],["","","y","ZAR","6","49591","4848, 4440, 4440, 0518, 2625",null,"1.81","4848","0:16:05","","12","","L",null,null],["","","y","ZAR","7","49595","6458",null,"5.55","6458","0:04:13","","55","","T",null,null],["","","y","ZAR","8","49596","",null,"2.90","NONE","0:04:35","","29","","T",null,null],["","","y","ZAR","9","49496","6458, 2427, 2427, 7863, 5845",null,"2.56","6458","0:06:07","","10","","B",null,null],["","","y","ZAR","10","49524","6458, 2427, 7863, 7863, 5845",null,"1.67","6458","0:06:00","","5","","B",null,null],["","","y","ZAR","11","49539","6458, 2427, 7863, 7863, 0764",null,"2.02","6458","0:04:25","","10","","B",null,null]]}

、ブロックアダムズが私を助けてくれた2D配列にそれを読んでください。

var myJson              = '{"d":[["","","y","ZAR","1","49517","6458, 8270, 8270, 8270, 7635",null,"1.40","6458","0:13:30","","12","","C","30",null],["y","-00:00","y","ZAR","2","49593","6458, 6458, 6458, 6458, 6458",null,"2.92","6458","0:13:37","","12","","L","12","Ve4mYdrvkkQMKxBH1\/1VMtDTCDQBRspg5jB8jjY08zg="],["","","y","ZAR","3","49058","7456, 9216, 6458, 5153, 7456",null,"194.40","7456","0:00:31","","1100","","T",null,null],["","","y","ZAR","4","49597","2935, 6554",null,"1.22","2935","0:01:16","","12","","T",null,null],["","","y","ZAR","5","49590","4440, 0518, 5343, 2625, 4848",null,"0.95","4440","0:15:58","","5","","L",null,null],["","","y","ZAR","6","49591","4848, 4440, 4440, 0518, 2625",null,"1.81","4848","0:16:05","","12","","L",null,null],["","","y","ZAR","7","49595","6458",null,"5.55","6458","0:04:13","","55","","T",null,null],["","","y","ZAR","8","49596","",null,"2.90","NONE","0:04:35","","29","","T",null,null],["","","y","ZAR","9","49496","6458, 2427, 2427, 7863, 5845",null,"2.56","6458","0:06:07","","10","","B",null,null],["","","y","ZAR","10","49524","6458, 2427, 7863, 7863, 5845",null,"1.67","6458","0:06:00","","5","","B",null,null],["","","y","ZAR","11","49539","6458, 2427, 7863, 7863, 0764",null,"2.02","6458","0:04:25","","10","","B",null,null]]}'
var jsonObj             = $.parseJSON (myJson);

//--- The JSON should return a 2-D array, named "d".
var arrayOfAuctions     = jsonObj.d;

//--- Loop over each row in the array.
$.each (
    arrayOfAuctions,
    function (rowIndex, singleAuctionData) {

        //--- Print the 7th column.
        console.log ('Row: ' + (parseInt (rowIndex) + 1) + ' Column: 7  Value: ' + singleAuctionData[6]);
    }
);

ここで、配列のこのデータをファイルに書き込みます。このファイルは、後でexcellで開いて、調べることができます。GM_setValueを使用して、それを行うことができますか?それを続けるのが最も簡単な方法はどうでしょうか?

ありがとう。

4

1 に答える 1

2

Greasemonkeyはファイルに書き込むことができず、GM_setValueローカルストレージを使用したり、ローカルストレージを使用したりするのは面倒です。GM_setValueこれらはブラウザの設定に保存されるため、とにかく使用して非常に多くの値を保存する必要はありません。

あなたはリモートサーバーについて言及しました。
はい、GMはデータをリモートサーバー(またはXAMPPなどを実行している場合はローカルマシン)に送信できます。もう少し作業をすれば、データをGoogleドキュメントなどに送信することもできます。

送信するデータが明確ではありません(全体を送信するだけではないと仮定しますarrayOfAuctions)。

たとえば、データを分析し、次の列が必要であると判断したとします。

桁
インデックスの意味/目的
------ --------------------------------
   4オークション表示番号
   5オークションID
   8現在の価格
   9高額入札者ID
  残り10時間
  12まで???


次に、次のように対象のデータを分離できます。

//--- Start custom, 2-D array.
var myAuctionData       = [ [ 'DisplayNumber', 'AuctionID', 'CurrentPrice',
                            'HighbidderID', 'TimeRemaining', 'Upto'
                        ] ];

//--- Loop over each row in the array, storing desired data.
$.each (
    arrayOfAuctions,
    function (rowIndex, singleAuctionData)
    {
        myAuctionData.push ( [
            singleAuctionData[4], singleAuctionData[5],  singleAuctionData[8],
            singleAuctionData[9], singleAuctionData[10], singleAuctionData[12]
        ] );
    }
);


そして、次のようにサーバーに送信します。

SerializedAuctionData  = JSON.stringify (myAuctionData);

GM_xmlhttpRequest ( {
    method:     "POST",
    url:        "http://localhost/YourDir/LogAuctionData.php",
    data:       SerializedAuctionData,
    headers:    {"Content-Type": "application/json"}
} );


サーバーは、使い慣れたテクノロジーを使用できます。
PHPページの場合、次のようにJSONデータを抽出できます。

$AuctionData = json_decode($HTTP_RAW_POST_DATA);
print_r ($AuctionData);


サーバーページはcsvまたはxlsファイルを書き込むことができますが、大量のデータが1秒に1回投稿されるため、mySQLデータベースを使用する方が賢明でしょう。

于 2011-06-10T10:40:42.873 に答える