2013-04-06 63 views
6

通過使用Google搜索引擎通過網絡搜索是一個事實上互聯網用戶的標準。 Google提供了一個基本的advanced form準備查詢字符串到其搜索引擎。假設對不使用Web表單感興趣,可以簡單地使用在搜索條件下構建的查詢字符串對特定URL執行HTTP獲取請求。如何構建複雜的Google Web搜索查詢?

例如我可以通過在這樣做的HTTP請求搜索與單詞「你好」結果:

http://www.google.com/search?q=hello 

我可以添加其他詞,例如「世界」,具體如下:

http://www.google.com/search?q=hello+world 

你知道,搜索可以更 「複雜」 的通過指定喜歡漂亮的參數:

  • 或條件(S)
  • 精確短語(多個)
  • 上特定域
  • 避免特定的字(一個或多個)
  • 搜索機智搜索^ h按地理區域特定的語言
  • 限制搜索
  • 搜索文檔類型

如何修改查詢字符串來解釋上面的搜索參數?

+0

我希望大家都知道,沒有使用Web表單和刮結果網頁違反了谷歌使用條款。 – Filburt 2013-04-06 15:01:18

+0

@Filburt謝謝!你記住了我!但是,我的問題涉及如何製作一些東西,不知道這是否違反了Google的條款!我正在測試一個原型。谷歌已經能夠爲我辯護:) – JeanValjean 2013-04-06 15:06:18

回答

1

雖然這本書的標題看起來很危險,但無論如何它會回答你所有的問題,如果你不濫用它。

這本書的名字是「危險的谷歌 - 尋找祕密」由MichałPiotrowski通過一些hackin9雜誌。

願望雅運氣

+0

有趣的書 – JeanValjean 2013-04-06 18:29:11

3

我仔細Pratik ChowdhuryRobbie Vercammen檢查答案。他們提供了一個鏈接到Web文檔的鏈接,該鏈接報告了Google搜索表單中可能使用的文本過濾列表。儘管這很有趣,但他們沒有提供這個問題的答案。因此,我研究了很多問題,並找到了以下解決方案。

假設您需要對Google搜索進行HTTP調用(例如,通過CRON運行的PHP類,每月一次),以檢索特定字符串查詢的搜索結果,例如,在您的網站(即mywebsite。)中的所有網頁都帶有一些字詞(即「hello」和「world」)。COM),那麼你可以做一個HTTP GET調用到以下地址:

http://www.google.com/search?q=hello+world+site:mywebsite.com 

q參數可以包含整個搜索查詢,谷歌卻定義的參數假證明名單。

請注意,AND運算符可以用as_q參數代替。而一個更緊湊的表示採用as_oq

q=hello+OR+world 

要獲得頁面的結果與之間的「你好」和「世界」(即和OR)之一,必須改變查詢‘q’參數來作爲參數:

as_oq=hello+world 

如果尋找確切的短語 「世界你好」,該q參數爲:

q="hello+world" 

同時,再次,另一個緊湊表示使用as_epq參數:

as_epq=hello+world 

如果一個查找所有不包含單詞「你好」和「世界」的成果,q參數爲:

q=-hello+-world 

同時,再次,另一緊湊的表示使用as_eq參數:

as_eq=hello+world 

當然,as_q,as_oqas_epq,as_eq等可以通過像通常一樣組合在唯一的搜索查詢中(即,通過使用&字符)。因此,例如我可以搜索兩個詞「你好」和「字」加「規劃」之間的一個「碼」爲遵循這裏:

q=hello+world&as_oq=programming+code 

人們可以搜索特定的域(再次,MYDOMAIN .COM)如下:

as_sitesearch=mydomain.com 

但是,如果要排除特定的域(例如,因爲它是一個垃圾郵件源),您必須對復發的標準符號。例如: -

q=hello+-site:mydomain.com 

回報所有不在現場mydomain.com的用字的頁面「你好」。

要獲得特定的文件類型,例如一個pdf,你可以使用as_filetype

as_filetype=pdf 

更復雜的搜索參數可以使用,如Google support docs提供。例如,要獲得帶有單詞同義詞的結果,只需在單詞前面使用~算子,例如,

q=~hello 

此外,如果你想使用通配符,例如讓所有以「你好」開始,以「世界」結束確切的短語,你應該使用*操作:

q="hello+*+world" 

這可能會返回類似:「你好世界」和「你好甜世界」。

你也可以搜索特定的詞裏面的頁面標題或使用以下關鍵字的頁面URL(讀here有詳細介紹):

  • INTITLE
  • allintitle
  • inurl這樣
  • allinurl

例如,下面返回所有頁面sa這兩個詞「你好」和「世界」是在URL:

q=allinurl:hello+world 

對於谷歌GUI頁面(不結果的一個),必須插入到查詢字符串的語言字符串的語言(例如英語的en,法語的fr,意大利語的it等)到hl參數。換句話說,如果一個搜索與英文版本的谷歌,查詢字符串變成如下:

http://www.google.com/search?hl=en&q=hello+world+site:mywebsite.com 

要選擇一個特定的語言,例如意大利,用lr查詢參數:

lr=lang_it 

人們也可以通過使用cr參數公佈在一個特定的地理區域選擇頁面。例如,要查找在意大利出版的所有頁面:

cr=countryIT 
2

Advangle是一個不錯的免費服務,您可以構建網絡搜索查詢可視化,並得到查詢字符串(或URL,以谷歌和Bing)作爲結果。

+0

對不起,但我試過了(它仍然在測試版),它不工作得很好!例如,它似乎提供了對多文件類型搜索的支持,但Google中的查詢返回'q =「help」filetype:pdf filetype:eps',這不會產生任何結果,而正確的查詢將是'q = help +文件類型:PDF + OR +文件類型:eps'。 – JeanValjean 2013-04-11 07:48:25

+0

這不是一個錯誤。簡單地說,所有條件都由AND默認連接。所以你要求找到文件類型EPS和PDF的所有文件,這顯然是不可能的。 如果您需要通過OR連接它們 - 將根條件組中的鏈接類型從「all」更改爲「any」。 – DevGuy 2013-04-30 11:52:05

2

要創建複雜的and/or查詢,您可以使用()OR

例如,如果我們要搜索

("tschakk buff" AND "boom bang") OR ("zata tong" AND "zong klirr") 

查詢應該是這樣的:

https://www.google.com/search?q=("tschakk%20buff"%20"boom%20bang")%20OR%20("zata%20tong"%20"zong%20klirr")