从谷歌API获取不准确的谷歌搜索结果

时间:2014-07-04 15:53:50

标签: c# ajax json api google-custom-search

我有什么?

  • Google帐户。
  • 简单的API密钥访问。
  • 我创建了一个自定义搜索引擎,我已经设置搜索整个网络,但强调其中包含的网站,并且我已从网站中删除所有链接以搜索< / strong>部分(以便搜索整个网络,并且不限于某个网站)。
  • 我从自定义搜索引擎获得 CX (搜索引擎ID)。

如果我尝试这个命令:

https://www.googleapis.com/customsearch/v1?key=[MY_API_KEY]&cx=017576662512468239146:omuauf_lfve&q=intitle:%22crazy+stink%22

(这里以谷歌的形式提供CX作为示例:https://developers.google.com/custom-search/json-api/v1/using_rest,但如果我设置了自己的CX,我会得到相同的结果。

结果:

{
 "kind": "customsearch#search",
 "url": {
  "type": "application/json",
  "template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"
 },
 "queries": {
  "request": [
   {
    "title": "Google Custom Search - intitle:\"crazy stink\"",
    "totalResults": "0",
    "searchTerms": "intitle:\"crazy stink\"",
    "count": 10,
    "inputEncoding": "utf8",
    "outputEncoding": "utf8",
    "safe": "off",
    "cx": "017576662512468239146:omuauf_lfve"
   }
  ]
 },
 "searchInformation": {
  "searchTime": 0.35068,
  "formattedSearchTime": "0.35",
  "totalResults": "0",
  "formattedTotalResults": "0"
 }
}

如果您对此进行测试,您会发现这会给您0结果,但是如果您执行相同查询的Google搜索,则会获得约。 35结果:https://www.google.com/search?q=intitle%3A%22crazy+stink%22

这是我寻求帮助的主要原因。在我的项目中,我需要所有这些结果,如果正常的谷歌搜索得到35个结果,我也需要得到这35个结果。

我需要这个用于我的C#项目,但是我并不关心以哪种格式获得结果(JSON,XML等等)

我计划启用结算功能,并超过&#34;免费&#34;我目前有100个查询/天的限制。然而,在我这样做之前,我需要拥有功能齐全的设施(我现在不会这样做)。


附加说明: 即使使用免费的AJAX Api:http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=1&rsz=large&q=intitle:%22crazy+stink%22我得到0结果(你可以在没有API密钥的情况下测试这个结果)。 结果:

{"responseData": {"results":[],"cursor":{"moreResultsUrl":"http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8\u0026source\u003duds\u0026start\u003d1\u0026hl\u003den\u0026q\u003dintitle:%22crazy+stink%22","searchResultTime":"0.10"}}, "responseDetails": null, "responseStatus": 200}

任何想法和建议都非常受欢迎。

2 个答案:

答案 0 :(得分:1)

使用此API https://developers.google.com/custom-search/json-api/v1/using_rest,您必须提供一些网站进行搜索,如果您没有提供要在此处搜索的网站(https://www.google.com/cse/all),则不会向您显示结果。至少要将一个站点设置为搜索,或者搜索许多站点。自2010年11月1日起,您所需的Google Web搜索API已被正式弃用。 https://developers.google.com/web-search/docs/ 它只搜索整个网络

答案 1 :(得分:0)

我也面临同样的问题, 经过研究,我发现我没有在我创建的搜索引擎中提供网站 所以我在搜索引擎页面中提供www.google.com作为网站 这是在搜索引擎中添加网站的链接

https://www.google.com/cse/setup/basic?cx= {您的搜索引擎ID}

在使用您的搜索引擎ID执行上述链接后,您将获得搜索引擎页面 然后进入&#34; 基础&#34;选项卡进入&#34; 网站搜索&#34;部分然后添加网站 对我来说,我使用 www.google.com

我的问题得到解决:)