如何构建复杂的Google Web搜索查询?

时间:2013-04-06 14:42:42

标签: http search-engine google-search

使用Google搜索引擎通过网络搜索是互联网用户的事实上的标准。 Google提供基本advanced form来为其搜索引擎准备查询字符串。假设对不使用Web表单感兴趣,可以使用根据搜索条件构造的查询字符串对特定URL执行HTTP get请求。

例如,我可以通过在以下位置执行HTTP请求来搜索带有“ hello ”字样的结果:

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

我可以添加另一个词,例如“ world ”,如下:

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

你知道,通过指定好的参数,搜索可能会更复杂:

  • 或条件
  • 确切的短语
  • 搜索特定域名
  • 避免使用特定字词
  • 使用特定语言搜索
  • 按地理区域限制搜索
  • 搜索文档类型

如何修改查询字符串以考虑上述搜索参数?

5 个答案:

答案 0 :(得分:4)

我仔细检查了Pratik ChowdhuryRobbie Vercammen的答案。它们提供了指向Web文档的链接,这些文档报告了可在Google搜索表单中使用的可能的文本过滤列表。尽管这很有趣,但它们并未提供问题的答案。因此,我研究了很多问题,并找到了以下解决方案。

假设您需要将 una tantum HTTP调用(例如,通过CRON每月运行一次的PHP类)调用到Google搜索,以便检索特定字符串查询的搜索结果,例如在您的网站上有一些单词(即“你好”和“世界”)的所有页面(即 mywebsite.com ),然后你可以对以下地址进行HTTP调用:

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

q参数可以包含整个搜索查询,但Google定义了虚拟证明参数列表。

请注意,AND运算符可以由as_q参数代表。

要在“hello”和“world”(即OR)之间获取一个页面结果,必须将查询“q”参数更改为:

q=hello+OR+world

虽然更紧凑的表示使用as_oq参数:

as_oq=hello+world

如果查找完整的短语“hello world”,q参数为:

q="hello+world"

同时,另一个紧凑表示使用as_epq参数:

as_epq=hello+world

如果查找不包含“hello”和“world”字样的所有结果,q参数为:

q=-hello+-world

同时,另一个紧凑表示使用as_eq参数:

as_eq=hello+world

当然,as_qas_oqas_epqas_eq等可以照常组合在一个唯一的搜索查询中(即使用{{1字符)。因此,例如,我可以在“编程”和“代码”之间搜索“hello”和“word”两个词,如下所示:

&

可以搜索特定域(同样, mydomain.com ),如下所示:

q=hello+world&as_oq=programming+code

但是,如果要排除特定域(例如,因为它是垃圾邮件源),则必须重复使用标准表示法。 E.g:

as_sitesearch=mydomain.com

返回所有不在网站 mydomain.com 中的“hello”字样的网页。

获取特定文件类型,例如pdf,您可以使用q=hello+-site:mydomain.com

as_filetype

可以使用更复杂的搜索参数,如Google support docs中所提供。 例如,要获得具有单词同义词的结果,只需在单词前面使用as_filetype=pdf 运算符,例如

~

此外,如果您想使用通配符,例如要获得以“hello”开头并以“world”结尾的所有确切短语,您应该使用q=~hello 运算符:

*

这可能会回归:“向世界问好”和“你好甜蜜的世界”。

还可以使用以下关键字在页面标题或页面网址中搜索特定字词(有关详细信息,请阅读here):

  • INTITLE
  • allintitle
  • inurl这样
  • 的allinurl

例如,以下内容返回所有页面s.a. “hello”和“world”这两个词都在网址中:

q="hello+*+world"

对于Google GUI页面的语言(不是其中一个结果),必须在查询字符串中插入语言字符串(例如,英语为q=allinurl:hello+world ,法语为en,{{ 1}}对于意大利语等)fr参数。换句话说,如果使用英文版Google进行一次搜索,则查询字符串将变为如下:

it

选择特定语言,例如意大利语,使用hl查询参数:

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

还可以使用lr参数选择在特定地理区域中发布的网页。例如,找到在意大利发表的所有页面:

lr=lang_it

答案 1 :(得分:2)

Advangle是一项不错的免费服务,您可以直观地构建网络搜索查询,并获取查询字符串(或Google和Bing的网址)作为结果。

答案 2 :(得分: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")

答案 3 :(得分:1)

虽然这本书的标题看起来很危险,但无论如何,如果你不滥用它,它会回答你所有的问题。

这本书的名字是MichałPiotrowski的一本hackin9杂志的“Dangerous Google - Seising for Segerous”。

祝你好运

答案 4 :(得分:1)

如果您尝试在使用之前手动键入网址来组合自己的网址,则此网站应该会有所帮助:http://www.googleguide.com/advanced_operators.html