用以后可以处理的greasemonkey存储或login数据

我正在忙于一个网站,我想写一个logging所有数据,或者至less某些位置的greasemonkey脚本,并保存在一个文件中,这将是excell的interperatable。 那可能吗? 说例如我拿这个数据片段:

{"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]]} 

,把它读成一个二维数组,这是Brock Adams帮助我的。

 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,可以完成吗? 最简单的方法是怎么继续呢?

谢谢。

Greasemonkey不能写入文件,使用GM_setValue或本地存储将是一个痛苦进入一个文件。 无论如何,您不想使用GM_setValue存储非常多的值,因为这些值存储在浏览器首选项中。

你提到了一个远程服务器。
是的,GM可以将数据发送到远程服务器(如果运行的是XAMPP之类的话,甚至是本地机器)。 再多做一些工作,您也可以将数据发送给Google文档或类似的文档。

目前还不清楚你想发送什么数据(假设你不只是发送整个arrayOfAuctions )。

所以说,你已经分析了数据,并确定你想要这些列:

柱 
索引含义/目的
 -------- --------------------------------
    4拍卖显示号码
    5拍卖编号
    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文件,但是由于大量的数据将被发布,每秒一次,使用mySQL数据库可能会更聪明。

Interesting Posts