当前位置: 首页 > 面试题库 >

使用Greasemonkey和jQuery从页面拦截JSON / AJAX数据并进行处理

岑和风
2023-03-14
问题内容

对了,我得到了部分在我回答刚才的问题。但是,我仍然面临着告诉通用汽车去哪里取数据放入阵列的问题。

在网页http://www.trada.net/p_home.aspx上,如果我运行firebug控制台,我将从上述问题中获取数据,但是它一直在变化,每秒更新一次。

这些数据让我知道如何将其放入数组中,然后我将告诉GM如何处理它。我无法一直运行Firebug控制台,而且我不知道如何获取GM来获取站点发送的数据请求,这些请求看起来像: http
//www.trada.net/REST_Service/REST_Auction.svc/GetAuctionData? _ =
1306009003654-
最后一部分随每次更新而变化。

基本上,Gm会每秒获取一次数据,查看是否需要对任何拍卖进行出价,然后如果赢得任何一个,请单击显示的弹出窗口以继续。


问题答案:

由于目标页面使用jQuery,因此您可以使用轻松监听JSON数据ajaxSuccess()

然后问题就变成了将数据从页面的作用域中移到GM沙箱中……这可以通过将数据放入特殊的页面节点中来完成。

综上所述,以下内容将帮助您入门:

将近4年后更新:
由于Firefox和Greasemonkey的许多更改,下面的代码现在已过时。由于缺乏兴趣,而且由于它不是大多数RL任务的最佳方法,因此我不打算对其进行重新设计。在大多数情况下;最强大,最便携式和最可靠的方法仍然是智能轮询。

// ==UserScript==
// @name            _Fun with JSON
// @include         http://www.trada.net/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==


//--- Create a cell for transmitting the date from page scope to GM scope.
$('body'). prepend ('<div id="LatestJSON_Data"></div>');

var J_DataCell          = $('#LatestJSON_Data');


//--- Evesdrop on the page's AJAX calls and paste the data into our special div.
unsafeWindow.$('body').ajaxSuccess (
    function (event, requestData)
    {
        J_DataCell.text (requestData.responseText);
    }
);


//--- Listen for changes to the special div and parse the data.
J_DataCell.bind ('DOMSubtreeModified', ParseJSON_Data);


function ParseJSON_Data ()
{
    //--- Get the latest data from the special cell and parse it.
    var myJson              = J_DataCell.text ();
    var jsonObj             = $.parseJSON (myJson);

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

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

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


//--- Format our special cell with CSS.  Add "visibility: hidden;" or "display: none;", if desired.
GM_addStyle ( (<><![CDATA[
    #LatestJSON_Data
    {
        background:         gold;
        border:             3px ridge #0000DD;
        font-size:          10px;
        margin:             0 2em;
        padding:            1ex 1em;
        width:              94%;
        opacity:            0.8;
        overflow:           hidden;
        z-index:            666;
        position:           absolute;
        color:              black;
    }
]]></>).toString () );

请注意,问题的建议可能会违反网站的 _服务条款_和/或网站可能会采取对策。(他们已经混淆了他们的JS。)



 类似资料:
  • 问题内容: 问题 我需要在Django模板中使用jQuery进行Ajax分页。 情况 我的模板中包含以下代码: 和我的看法: 结论 因此,每当我按“下一步”时,它实际上会发出Ajax请求,但数据不会在表中呈现。 对于分页,使用django.core.paginator,我真的很愿意在可能的情况下坚持使用。 您能看到代码缺失/错误吗? 问题答案: 我没有发现错误,但下面向您展示如何解决此任务。我认为

  • 现在,当我到达spring-boot应用程序的endpoint时,它工作得很好 基本上,它根本不调用preandle。我错过了什么????

  • 问题内容: 已关闭 。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我正在寻找一个使用jQuery,PHP和MySQL的很好的Ajax分页教程。我遇到的那些不好。 因此,如果有人可以推荐一个好的网站/教程,那就太好了。谢谢。 编辑 这是一些不好的教程。 网站1 网站2 网站3 问题答案: 这是 CakePHP的 一个教程

  • 今天发生了一件奇怪的事情:我正试图使用jquery和ajax从一个JSON文件中检索一些数据,并将这些数据显示在一个网页上。我在互联网上找到的这个例子对我在基础操作系统上起作用。当我尝试从带有Win10操作系统的虚拟机运行它时,它不起作用,这意味着它会将我抛到:。为什么?提前多谢! 这在我的data19.json文件中: 我的脚本script19.js是: 我的HTML文件是:

  • 问题内容: 我正在使用PHP脚本创建JSON数据。看起来像这样: 现在,如果我将其放入文件中,然后使用ajax加载它就可以了。但是,如果我从PHP脚本中请求此命令,则会得到 parsererror | 语法错误:意外的令牌非法 这是我用来从PHP加载JSON的代码: 这是PHP代码: 有任何想法吗? 问题答案: Doctypes属于HTML文档,而不是JSON。 在您的PHP文件中尝试这样的操作(

  • 问题内容: 我在名为data的变量中返回了以下JSON。 这是GETS返回的JSON … 我试图使用$ .each遍历整个集合,但是遇到了警报显示未定义的问题。我尝试了很多不同的语法,但似乎无法弄清楚。 我正在使用的jQuery是 谁能指出我正确的方向? 编辑 这是我用来获取数据的代码 这是在回调时被调用的函数 编辑2 这有点使我感到困惑,根据文档,它应该可以正常使用,但事实并非如此。据提琴手说,