Opera整合搜索引擎的確是相當(dāng)人性化的設(shè)計(jì),我們不必一遍又一遍花時(shí)間登陸那些引擎的首頁(yè),也不必像IE那樣裝上許多我們不知道會(huì)起什么作用的工具欄,就可以方便地使用搜索引擎。
如果你對(duì)Opera“原裝”的搜索引擎感到不滿(這種情況在我們非西方用戶使用英文版時(shí)非常普遍),那么您完全可以自己定義Opera搜索引擎列表。
Opera整合引擎的列表及參數(shù)基本都在 search.ini文件。這個(gè)文件一般在opera安裝目錄下,是文本格式,可以用文本編輯器打開(包括UltraEdit,UEStudio05,Vim,記事本……)。就是說(shuō),我們?nèi)绻獙?duì)搜索引擎列表進(jìn)行修改,手段就是修改這個(gè)search.ini文件。
事實(shí)上已經(jīng)有一個(gè)Opera search.ini Editor的軟件可以通過(guò)圖形界面編輯 search.ini 文件。但是作為對(duì)修改添加引擎的詳細(xì)說(shuō)明,手動(dòng)編輯的具體介紹是十分必要的。
記住編輯前,先備份你的search.ini文件。
INIOpera Preferences version 2.0
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding
[Version]
File Version=6
[Search Engine 1]
Name=&Google
URL=""http://www.google.com/searchq=%s&sourceid=opera&num=%i&ie=utf-8&oe=utf-8""
Query=
Key=g
Is post=0
Has endseparator=0
Encoding=utf-8
Search Type=0
Verbtext=17063
Position=-1
Nameid=0
[Search Engine 2]
……………………
[Search Engine 3]
……………………
………………………………………………
Opera Preferences version 2.0
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding
[Version]
File Version=6
[Search Engine 1]
……………………
[Search Engine 2]
……………………
[Search Engine 3]
……………………
1 [Search Engine 1]
2 Name=&Google
3 URL=""http://www.google.com/searchq=%s&num=%i""
4 Query=
5 Key=g
6 Is post=0
7 Has endseparator=0
8 Encoding=utf-8
9 Search Type=0
10 Verbtext=17063
11 Position=-1
12 Nameid=0格式很明了,前部分是屬性名稱,等號(hào)后面是設(shè)定的參數(shù)。
1.[Search Engine 1]
方括號(hào)里面最后的數(shù)字決定了引擎的在opera程序界面中的顯示順序,比如說(shuō)你在“首選項(xiàng)”里看到的,還有右鍵單擊個(gè)人欄點(diǎn)“顯示搜索”也能看到。
需要注意的是,在英文版中的"Super Search"功能(官方翻譯為“搜索各引擎”)中,使用的是[Search Engine1]和[Search Engine 2]所定義的引擎。而且作為[Search Engine 1]然后[Search Engine2]然后[Search Engine 3]…………
從小到大的順序不能打亂,[]里面不能加空格,否則從打亂或錯(cuò)誤處往后的引擎不會(huì)顯示在程序界面中。
最多定義到50個(gè)搜索引擎(包括翻譯引擎之類),就是[Search Engine 1]到[Search Engine 50],多了的程序不予識(shí)別。
2.Name=&Google
這里等號(hào)后面是程序界面中會(huì)顯示的搜索引擎的名稱,比方說(shuō)搜索框。你當(dāng)然可以隨心所欲填寫干擾別人正常使用,但最好你記得每個(gè)名稱真正對(duì)應(yīng)什么引擎。
這里的"&"符號(hào)代表符號(hào)后面緊接的一個(gè)字母是這個(gè)引擎的快捷鍵,但符號(hào)"&"不會(huì)在程序界面中顯示出來(lái)。
拿&google當(dāng)例子,"&"后面的"g"鍵就成了某些對(duì)話框中Google引擎的快捷鍵。而且在某些對(duì)話框中,Google的G字母下面會(huì)出現(xiàn)下劃線。如果你不想(尤其在定義一些中文名稱時(shí)),完全可以不要這個(gè)符號(hào),只是少了快捷鍵,并不影響搜索效果。
3.URL=""http://www.google.com/searchq=%s&sourceid=opera&num=%i&ie=utf-8&oe=utf-8""
這一行是定義搜索的核心部分,等號(hào)后面是搜索引擎的接受搜索請(qǐng)求的格式。
這里牽扯到一個(gè)問(wèn)題,就是什么樣的引擎可以被整合到Opera,這個(gè)問(wèn)題在附錄有說(shuō)明。
這里存在兩個(gè)變量(后面解釋),就是%s和%i。%s代表你要搜索的字詞,%i代表你需要的每頁(yè)返回的搜索結(jié)果數(shù)。
這樣再解釋等號(hào)后面的網(wǎng)址就是:
http://www.google.com/searchq=要搜索的字符&sourceid=opera&num=每頁(yè)返回結(jié)果數(shù)&ie=utf-8&oe=utf-8
比如你在搜索框輸入Truth然后回車,在得到搜索結(jié)果以后,會(huì)發(fā)現(xiàn)地址欄變成:
http://www.google.com/searchq=Truth&sourceid=opera&num=0&ie=utf-8&oe=utf-8
和URL相比%s變成了Truth,%i變成了0。
這是因?yàn)椋阉饕娲笸‘?,要搜索,我們只需要定義兩個(gè)值,一個(gè)是搜什么關(guān)鍵詞,一個(gè)是每頁(yè)顯示多少結(jié)果。這兩個(gè)值不可能每次搜索都一樣(每天搜索自己名字自戀的人除外),所以我們把它定義成未知數(shù)x和y。開始提到的所謂變量,可以理解為未知數(shù)。未知數(shù)x就是%s,y就是%i。%s是個(gè)字符串,%i是個(gè)數(shù)字。格式規(guī)定,只能用%s,%i表示(符合C程序習(xí)慣),而不能用x、y,但基本一個(gè)意思。
我們?cè)谒阉鞯臅r(shí)候,在搜索框或個(gè)人欄上搜索框輸入的字符就是%s的值;在右鍵搜索中,涂黑選定的字符是%s的值;而%i的值可以在首選項(xiàng)設(shè)定,如果沒有設(shè)定過(guò),它的值默認(rèn)是0,也就是按網(wǎng)站默認(rèn)的每頁(yè)結(jié)果數(shù)顯示。
所以在例子中地址欄出現(xiàn)了%s變成了Truth,%i 變成了0的變化。
至于&ie=utf-8&oe=utf-8和&sourceid=opera,說(shuō)的是編碼格式和用戶識(shí)別,不用專門設(shè)定,也不是每個(gè)引擎都一樣,你甚至可以把這些都刪掉,不影響使用。
其實(shí)問(wèn)號(hào)后面&符號(hào)之間的字符串位置可以顛倒,比方說(shuō):
[url=http://www.google.com/searchq=%s&sourceid=opera&num=%i&ie=utf-8&oe=utf-8]http://www.google.com/searchq=%s&sourceid=opera&num=%i&ie=utf-8&oe=utf-8[/url]
[url=http://www.google.com/searchq=%s&ie=utf-8&oe=utf-8&sourceid=opera&num=%i]http://www.google.com/searchq=%s&ie=utf-8&oe=utf-8&sourceid=opera&num=%i[/url]
效果是一樣的。
注意:在Opera6.x中,%s必須放在%i的前面,不然用這個(gè)引擎搜索會(huì)導(dǎo)致程序崩潰。
4.Query=
只有當(dāng)行6是Is post=1的時(shí)候,這一行等號(hào)后面才需要填東西。
Google和大部分引擎的行6是Is post=0,所以后面留空,此時(shí)留空不留空都一樣,程序不讀這一行。
如果行6是Is post=1,那么這里按格式填URL后面需要提交的那部分。
拿Amazon.de來(lái)說(shuō)
行3和行4就應(yīng)該是:
URL=http://www.amazon.de/exec/obidos/search-handle-form/ Query=url=index%3Dbooks-de&field-keywords=%s&size=%i
當(dāng)你搜索的時(shí)候,Query中的內(nèi)容將不會(huì)顯示在地址欄,搜索完了地址欄還是http://www.amazon.de/exec/obidos/search-handle-form/
5.Key=g
這是設(shè)定關(guān)鍵字的地方,比如這里設(shè)定了g做google的關(guān)鍵字,那么在地址欄輸入“g Truth”就是在搜索"Truth"。
只有在Linux里面,大小寫字母不一樣,Key=g和Key=G是不一樣的。在Windows里面,大小寫字母一樣,可以用單詞作關(guān)鍵字,比方說(shuō)把搜狐引擎添加以后設(shè)定Key=sohu,你可以在地址欄輸入“sohu fishest”來(lái)搜索“Fishest”這個(gè)詞。
如果這些引擎關(guān)鍵字有一樣的,那么關(guān)鍵字就等于沒有,誰(shuí)用都無(wú)效。
如果關(guān)鍵字留空了,只有"Key="那么這個(gè)引擎以及排在后面所有的引擎都不能直接顯示在程序界面例如個(gè)人欄上。這個(gè)特性實(shí)現(xiàn)了隱藏后面眾多翻譯引擎的功能,但也可能是一個(gè)Bug。
6.Is post=0
當(dāng)引擎用HTTP GET取得關(guān)鍵詞的時(shí)候,Is post=0;當(dāng)引擎不允許GET查詢需要post關(guān)鍵詞,Is post=1,這種情況比較少見。
7.Has endseparator=0
這個(gè)參數(shù)有兩個(gè)值,表示顯示引擎列表的時(shí)候,這個(gè)引擎后面有沒有分隔符,0是沒有,-1是有。
這個(gè)可以從搜索框拉出的下拉菜單看到。也可以右鍵單擊個(gè)人欄-顯示搜索。
8.Encoding=utf-8
搜索引擎用的編碼格式。這里Google用的是UTF-8。在后文和附錄里有詳細(xì)說(shuō)明。
9.Search Type=0
一些固定的搜索類型代表含義
Search Type 2: 搜索各引擎
Search Type 12: 頁(yè)內(nèi)搜索 (搜索頁(yè)面中的文字)
Search Type 50: 字典
Search Type 51: 百科全書
Search Type 52: 貨幣轉(zhuǎn)換
Search Type 100: 英語(yǔ)翻法語(yǔ)
Search Type 100 到 116: 翻譯XX語(yǔ)為XX語(yǔ)
Search Type 117: 西班牙語(yǔ)翻法語(yǔ)- 下面是按照官方文件分析出的結(jié)果,并沒有被嚴(yán)格規(guī)定,但在編輯時(shí)推薦使用:
Search Type 3:電子商務(wù)/產(chǎn)品搜索
Search Type 5:軟件下載
Search Type 7:圖像搜索
Search Type 8:視頻搜索
Search Type 9:音樂(lè)搜索
Search Type 10:討論組
Search Type 13:新聞搜索- 下面是非官方定義的搜索類型,推薦使用:
Search Type 11:Flash搜索
Search Type 14:歌詞搜索- Search Type可以重復(fù),一般你加入的搜索引擎可以設(shè)Search Type=0。
- 當(dāng)然你也可以用這個(gè)設(shè)定定義個(gè)人欄上每個(gè)搜索框后面的小圖標(biāo),Search Type=X用buttons.ini文件SearchX條目下的圖標(biāo)。這樣你能用最多16個(gè)圖標(biāo)。[Search00]到[Search15]。一個(gè)圖標(biāo)可以重復(fù)使用。
10.Verbtext=17063
搜索引擎在程序界面顯示的標(biāo)題
例如各處搜索框沒有被激活的時(shí)候。17063對(duì)應(yīng)語(yǔ)言文件中的字符串,17063在中文語(yǔ)言包就是:"搜索 %s"。
11.Position=-1
當(dāng)搜索引擎不在個(gè)人欄顯示的時(shí)候,Position=-1;當(dāng)此搜索引擎在個(gè)人欄顯示,Position=它的位置。
12.Nameid=0
它用來(lái)取代Name的值,后面對(duì)應(yīng)一個(gè)語(yǔ)言包里的字符串,比如說(shuō)&Google就是Nameid=17171,這里是0,程序界面上就顯示Name的引擎名稱。
關(guān)于search.ini文件本身:
1.如果你沒有search.ini文件,或者這個(gè)文件是空的,Opera將只顯示Google,Alltheweb和頁(yè)內(nèi)搜索三項(xiàng)。(可能是個(gè)Bug)
2.如果你的search.ini文件里加了超過(guò)三個(gè)搜索引擎,Opera就不會(huì)自動(dòng)增加其他內(nèi)置引擎(比如頁(yè)內(nèi)搜索)。
3.每次修改完個(gè)人欄關(guān)閉Opera的時(shí)候,Opera會(huì)修改Search.ini文件。不要在Name和Nameid上作修改,會(huì)出現(xiàn)顯示不正常的BUG。
那么我們?cè)趺刺砑铀阉饕婺兀?br>
下面以添加百度為例講解。
1.判斷百度能不能被添加。
到百度首頁(yè)搜索一個(gè)詞,用“孤波”作例子。地址欄得到:
http://www1.baidu.com/baiduword=%B9%C2%B2%A8
很顯然,我們看到簡(jiǎn)單的xx=xx的結(jié)構(gòu),而且很明顯word是指關(guān)鍵詞,等號(hào)后面的%B9%C2%B2%A8(漢字編碼后一般顯示成幾個(gè)百分號(hào)跟16進(jìn)制數(shù)間隔排列的形式)是漢字“孤波”的編碼后的值,就是說(shuō)這個(gè)位置顯然就是%s。
我們還可以判斷出百度是使用GET來(lái)獲取關(guān)鍵詞的,可以被Opera整合,而且Is post=0。
如果地址欄是http://………….ger1或http://…………/……/之類其他沒有xx=xx結(jié)構(gòu)的,一般是Post得到關(guān)鍵詞,可以通過(guò)分析網(wǎng)頁(yè)源碼得到url和query信息。
2.得到URL=http://www1.baidu.com/baiduword=%s
3.辨別百度漢字編碼格式(附錄有字符集的說(shuō)明)。
如果你搜索英語(yǔ)的話,字符即不那么重要,幾乎所有字符即都和英語(yǔ)字符集兼容。而目前漢語(yǔ)字符集流行的是UTF-8和GB-2312,Opera支持gbk字符集,gbk兼容GB-2312,所以中文引擎選字符集就是選gbk和UTF-8。
一個(gè)簡(jiǎn)單的判斷方法是,在gbk中一個(gè)漢字編碼對(duì)應(yīng)%XX%XX--兩個(gè)百分號(hào)兩個(gè)16進(jìn)制數(shù),而UTF-8里面則是每個(gè)漢字對(duì)應(yīng)%XX%XX%XX--三個(gè)百分號(hào)三個(gè)十六進(jìn)制數(shù)。
我們用兩個(gè)字得到%B9%C2%B2%A8,可判斷出應(yīng)該用gbk編碼。
綜合以上信息,關(guān)閉Opera,修改search.ini的[Search Engine 2]條目為:
Name=百度
URL=""http://www1.baidu.com/baiduword=%s""
Query=
Key=b
Is post=0
Has endseparator=0
Encoding=gbk
Search Type=1
Verbtext=17063
Position=-1
Nameid=0(這里改了原來(lái)Search Engine 2,你可以在原來(lái)基礎(chǔ)上添加,但是編碼“2”也要相應(yīng)改變)
啟動(dòng)Opera,可以使用了。
附錄:
1.什么樣的搜索引擎可以被Opera整合?
只有用 HTTP GET 和post關(guān)鍵詞方式搜索的引擎才能被整合,簡(jiǎn)單理解是:只有能接受瀏覽器地址欄某種格式的搜索請(qǐng)求的引擎才能被整合。
2.有關(guān)變量的知識(shí)
前面有一個(gè)百分號(hào)的字母,表示這是一個(gè)變量,常見的Opera能識(shí)別變量有:
%u = 當(dāng)前顯示文檔的url
%t = 選定文本
%s = 來(lái)源于當(dāng)前顯示文檔的字符串
%c = 剪貼版內(nèi)容
%i = 顯示的搜索結(jié)果個(gè)數(shù) (在search.ini里)
%l = 鏈接,具體指代不詳
3.漢字編碼問(wèn)題。- 我們輸入的字符存起來(lái)都是一個(gè)一個(gè)的編碼,而字符集就是每個(gè)字所對(duì)應(yīng)編碼的標(biāo)準(zhǔn)。
- 開始的時(shí)候只有Ascii編碼就是ANSI的ASCII字符集,ANSI一般就是標(biāo)準(zhǔn)的意思。它是用8個(gè)bit表示一個(gè)字符,一共128個(gè),就是ascii碼表上所有的,因?yàn)橐粋€(gè)字節(jié)有8個(gè)bit組成,所以第一位規(guī)定成0。
- 后來(lái)擴(kuò)展了,第一位可以用1,這時(shí)候用8bit就是一個(gè)字節(jié)代表了,比原來(lái)多了制表符之類的特殊符號(hào),一共256個(gè)。
- 世界上不光是英語(yǔ)。所以,每個(gè)語(yǔ)種都在ASCII基礎(chǔ)上進(jìn)行了自己的擴(kuò)展,加入自己字符集。這些ANSI標(biāo)準(zhǔn)派生出來(lái)的,字符集被統(tǒng)稱為ANSI字符集,正式名稱應(yīng)該是MBCS具體什么縮寫我忘了。但是他們都兼容ASCII那127個(gè)字符,用大于128的編碼作為一個(gè)頭字節(jié)就是LeadingByte,然后跟在頭字節(jié)后面的第2或3個(gè)字符與頭字節(jié)一起作為辨認(rèn)字符集的標(biāo)志。
- GB-2312/3就是中國(guó)8幾年定的一個(gè)比較廣泛的ansi漢字字符集。
- 由于每種語(yǔ)言都制定了自己的字符集,導(dǎo)致最后存在的各種字符集實(shí)在太多,在國(guó)際交流中要經(jīng)常轉(zhuǎn)換字符集非常不便。
- 因此,提出了Unicode字符集,它固定使用16 bits(兩個(gè)字節(jié)、一個(gè)字)來(lái)表示一個(gè)字符,共可以表示65536個(gè)字符。
- 將世界上幾乎所有語(yǔ)言的常用字符收錄其中,方便了信息交流。標(biāo)準(zhǔn)的Unicode稱為UTF-16。后來(lái)為了雙字節(jié)的Unicode能夠在現(xiàn)存的處理單字節(jié)的系統(tǒng)上正確傳輸,出現(xiàn)了UTF-8,使用類似MBCS的方式對(duì)Unicode進(jìn)行編碼。
- 注意UTF-8是編碼,它屬于Unicode字符集。Unicode字符集有多種編碼形式,而ASCII只有一種,大多數(shù)MBCS(包括GB-2312)也只有一種。
- 目前流行的漢字編碼是gb-2312和utf-8,gbk是兼容gb-2312的一種編碼標(biāo)準(zhǔn)。
Opera "search.ini"的標(biāo)準(zhǔn)格式
[Search Engine #] -----搜索引擎序號(hào)
Name= -----顯示在Opera的Search Bar中的搜索引擎的名稱
URL= -----搜索引擎的網(wǎng)址
Query=
Key= -----搜索引擎的快捷鍵,用于在Opera的地址欄進(jìn)行快捷搜索
Is post= -----數(shù)值一般是“0”
Has endseparator=
Encoding= -----搜索引擎使用的字符集
Search Type=
Verbtext= -----數(shù)值一般是“17063”
Position= -----數(shù)值一般是“-1”
Nameid= -----數(shù)值一般是“0”
聯(lián)系客服