Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用greasemonkey存储或记录数据,可在以后处理_Javascript_Json_Excel_Greasemonkey_Storing Data - Fatal编程技术网

Javascript 使用greasemonkey存储或记录数据,可在以后处理

Javascript 使用greasemonkey存储或记录数据,可在以后处理,javascript,json,excel,greasemonkey,storing-data,Javascript,Json,Excel,Greasemonkey,Storing Data,我现在正忙于一个网站,我想为它编写一个greasemonkey脚本,记录所有数据,或者至少记录其中的某些帖子,并保存在一个可以与ms excell交互的文件中。可能吗?比如说,我拿这段数据为例: {"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","4

我现在正忙于一个网站,我想为它编写一个greasemonkey脚本,记录所有数据,或者至少记录其中的某些帖子,并保存在一个可以与ms excell交互的文件中。可能吗?比如说,我拿这段数据为例:

 {"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数组,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的东西,甚至可以发送到您的本地计算机)。再多做一点工作,你也可以把数据发送到谷歌文档或类似的网站上

不清楚您要发送什么数据(假设您不只是发送整个
阵列故障

比如说,您已经分析了数据并确定需要这些列:

Column Index Meaning / Purpose ------ -------------------------------- 4 Auction display number 5 Auction ID 8 Current Price 9 High bidder ID 10 Time Remaining 12 Up to???
并将其发送到服务器,如下所示:

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数据库可能会更明智。

保存到csv文件以在Excel中打开是最简单的方法,但我认为您不能用GreaseMonkey保存文件:我认为最简单的方法是将文件存储在远程服务器上。。。只是仍然有点不确定如何继续…引用“那么,比如说,你已经分析了数据并确定你想要这些列:列索引含义/目的--------------------------------------------4拍卖展示编号5拍卖ID 8当前价格9高价竞标者ID 10剩余时间12到???”???" . 是的,这就是我的想法……:)但我的存储次数会减少,而不是每秒钟。我感兴趣的信息是:拍卖展示编号。开始出价,结束出价。这将大大减少数据量,因为它不会每秒都保存数据。您提到我可以将数据存储在自己的机器上……但我需要XAMPP)。请详细说明它是什么,以及我如何在我的机器上安装/实现它?它是如何工作的?我第一次访问它时:)@Brock,如果我不是每秒都存储数据,而是只有在拍卖结束时,我才会这样做:`$AuctionData=json\u decode($HTTP\u RAW\u POST\u data);打印($AuctionData);'如果拍卖结束是真的。。。正确的?“不是每一秒。”布罗克说。好的,谢谢,找到了XAMPP。我还得到了64位Win7。找到这篇文章:,所以我会试试。@Ludwig,你不需要XAMPP,你需要任何服务器技术,如Coldfusion、PHP、Python、Java、.net等。XAMPP只是一种快速启动和运行流行免费服务器(PHP)的方法。如果您以前从未编写过web应用程序,那么您将有一段学习曲线。。。请注意,如果您不熟悉PHP调试,那么初学者PHP代码将不会执行任何可见操作。。。是的,您和您的脚本完全负责调用
GM\u xmlhttpRequest
的频率。(不必是每秒一次。)
$AuctionData = json_decode($HTTP_RAW_POST_DATA);
print_r ($AuctionData);