10

使用Google搜索引擎在 Web 上进行搜索是 Internet 用户的事实标准。Google 提供了一个基本高级表单来为它的搜索引擎准备一个查询字符串。假设对不使用 Web 表单感兴趣,可以简单地使用根据搜索条件构造的查询字符串对特定 URL 执行 HTTP get 请求。

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

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

我可以添加另一个词,例如“世界”,如下所示:

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

你知道,通过指定好的参数,搜索可以更加“复杂”:

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

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

4

5 回答 5

5

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

假设您需要对 Google 搜索进行一次不可靠的HTTP 调用(例如,通过 CRON 运行的 PHP 类每月一次)以检索特定字符串查询的搜索结果,例如所有带有某些单词的页面(即“ hello" 和 "world") 在您的网站(即mywebsite.com)中,然后您可以对以下地址进行 HTTP get 调用:

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_q, as_oq, as_epq,as_eq等可以像往常一样组合在一个唯一的搜索查询中(即通过使用&字符)。因此,例如,我可以搜索“hello”和“word”这两个词加上“programming”和“code”之间的一个,如下所示:

q=hello+world&as_oq=programming+code

可以按如下方式搜索特定域(同样是mydomain.com):

as_sitesearch=mydomain.com

但是,如果您想排除特定域(例如,因为它是垃圾邮件源),您必须重新使用标准符号。例如:

q=hello+-site:mydomain.com

返回所有不在站点mydomain.com中的带有单词“hello”的页面。

要获取特定文件类型,例如 pdf,您可以使用as_filetype

as_filetype=pdf

可以使用更复杂的搜索参数,如Google 支持文档中提供的那样。例如,要获得同义词的结果,只需~在单词前面使用运算符,例如

q=~hello

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

q="hello+*+world"

这可能会返回类似:“hello to the world”和“hello sweet world”。

还可以使用以下关键字在页面标题或页面 url 中搜索特定单词(阅读此处了解更多详细信息):

  • 权利
  • allintitle
  • inurl
  • 蒜茸

例如,以下返回所有页面 sa 两个单词“hello”和“world”都在 url 中:

q=allinurl:hello+world

对于 Google 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
于 2013-04-07T12:23:40.627 回答
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")
于 2014-06-23T07:57:19.070 回答
1

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

于 2013-04-10T20:53:33.683 回答
1

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

这本书的名字是一些 hackin9 杂志的 Michał Piotrowski 所著的“Dangerous Google – Searching for Secrets”。

祝你好运

于 2013-04-06T15:26:12.383 回答
1

如果您在使用之前尝试通过手动输入 url 来组装自己的 url,那么这个网站应该会很有帮助:http ://www.googleguide.com/advanced_operators.html

于 2013-04-06T15:39:22.590 回答