【问题标题】:How do I get the search results from a search engine?如何从搜索引擎获取搜索结果?
【发布时间】:2012-04-10 10:36:53
【问题描述】:

我一直在试图弄清楚如何让 Greasemonkey 用户脚本在后台打开搜索引擎页面并获取搜索结果。我试图查找示例以打开 HTML 页面,但是 afaik 所有请求示例都处理 ajax 调用而不是 html 调用。

任何提示将不胜感激。

【问题讨论】:

    标签: javascript greasemonkey


    【解决方案1】:

    我做过类似的事情。
    您所要做的就是将GM_xmlhttpRequest 响应保存在DIV 中。
    有了这个DIV,你可以做任何你想做的事(显示、隐藏、只显示部分内容等)

    只需看看my script 源代码。
    我很肯定它会对你有所帮助。

    我知道你不需要,14k 代表先生,但无论如何我都会为你分解它:)

    函数conectar() 调用GM_xmlhttpRequest [GET] 并仅存储我想在#divtempora 中使用的部分内容,这是一个用户永远看不到(隐藏)的虚拟 div。
    然后函数resp_dxlegacy()遍历虚拟div,将我想要的信息保存在一个变量中并再次调用conectar(),传递此参数并将内容存储在另一个div中,最终显示给用户。

    【讨论】:

    • 先生。 14k 代表? :-) 是的,我最终包含了 jQuery 并将 GM_xmlhttpRequest 带入了 $() 函数(尽管我必须先从 HTML 中删除 DTD 行)。
    【解决方案2】:

    在 GreaseMonkey 中没有这样做(实际上不知道你是否可以这样做); 不过如果你真的想通过打开一个新标签来做到这一点,并且如果你没有在你的代码中使用任何 GM 特定的东西(并且不想自动运行代码,那么,这可能是一个障碍),您可以查看自定义按钮扩展。

    有了它,您可以创建可以访问 Firefox 内部的按钮并调用诸如 gBrowser.addTab() 之类的东西。

    但是与 CB 合作比在 GM 中工作要复杂一些。

    如果您有兴趣,这些帖子可能会有所帮助:

    从 Mozilla 复制的代码示例:

    var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.google.com/"));  
    newTabBrowser.addEventListener("load", function () {  
      newTabBrowser.contentDocument.body.innerHTML = "<div>hello world</div>";  
    }, true); 
    

    【讨论】:

      【解决方案3】:

      标准的 Greasmonkey GM_xmlhttpRequest 函数 (link to API) 可以处理任何类型的请求,而不仅仅是 JSON。在示例下,查看GET request 代码 sn-p。

      不过要小心。像 Google 这样的搜索引擎不会欣赏屏幕报废(如果您过快获取太多结果,可能会阻止您)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 1970-01-01
        • 2016-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多