我仔细检查了Pratik Chowdhury和Robbie 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 中搜索特定单词(阅读此处了解更多详细信息):
例如,以下返回所有页面 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