我一直想弄清楚如何讓Greasemonkey用戶腳本在後臺打開搜索引擎頁面並獲取搜索結果。我試圖查找示例來打開HTML頁面,但afaik請求的所有示例處理ajax調用而不是html調用。如何從搜索引擎獲取搜索結果?
任何提示將不勝感激。
我一直想弄清楚如何讓Greasemonkey用戶腳本在後臺打開搜索引擎頁面並獲取搜索結果。我試圖查找示例來打開HTML頁面,但afaik請求的所有示例處理ajax調用而不是html調用。如何從搜索引擎獲取搜索結果?
任何提示將不勝感激。
標準Greasmonkey GM_xmlhttpRequest
函數(link to API)可以處理任何類型的請求,而不僅僅是JSON。在示例下,查看GET request
代碼片段。
請注意。像谷歌這樣的搜索引擎不會喜歡屏幕截圖(如果你太快抓取太多結果,可能會阻止你)。
在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);
我做過類似的東西。
您只需將GM_xmlhttpRequest
響應保存在DIV
中即可。
有了這個DIV
,你可以做任何你想要的(顯示,隱藏,僅顯示一些內容,等等)
只要看看my script源代碼。
我很積極,它會幫助你。
我知道你不需要,14K代表先生,但無論如何,我會打破它給你:)
功能conectar()
調用GM_xmlhttpRequest
[GET]和存儲內容的只有一部分,我想要在#divtempora
中使用,這是一個用戶從不會看到(隱藏)的虛擬div。
然後函數resp_dxlegacy()
遍歷虛擬div,將我想要的信息保存到一個變量中,並再次調用conectar()
傳遞此參數並將內容存儲在另一個div中,最後將該內容顯示給用戶。
Mr. 14k rep? :-)是的,我最終包含了jQuery,並將GM_xmlhttpRequest放入$()函數中(儘管我必須先從HTML中刪除DTD行)。 – Spoike 2012-04-05 14:28:07