2012-03-26 275 views
0

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

任何提示将不胜感激。

回答

1

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

请注意。像谷歌这样的搜索引擎不会喜欢屏幕截图(如果你太快抓取太多结果,可能会阻止你)。

0

在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); 
0

我做过类似的东西。
您只需将GM_xmlhttpRequest响应保存在DIV中即可。
有了这个DIV,你可以做任何你想要的(显示,隐藏,仅显示一些内容,等等)

只要看看my script源代码。
我很积极,它会帮助你。

我知道你不需要,14K代表先生,但无论如何,我会打破它给你:)

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

+0

Mr. 14k rep? :-)是的,我最终包含了jQuery,并将GM_xmlhttpRequest放入$()函数中(尽管我必须先从HTML中删除DTD行)。 – Spoike 2012-04-05 14:28:07