Google Custom Search API中的保留字词

时间:2017-11-15 12:52:46

标签: google-custom-search

我正在使用Google Search API,但我遇到了一些麻烦。这个请求(在Python中,使用请求库)工作正常

res = requests.get("https://www.googleapis.com/customsearch/v1", params={
    "cx": <key1>,
    "key": <key2>,
    "alt": "json",
    "num": 2,
    "q": "cat sock ship hero monkey baby match"
})

并使用根据documentation

的语法返回结果

但是,此请求不起作用:

res = requests.get("https://www.googleapis.com/customsearch/v1", params={
    "cx": <key1>,
    "key": <key2>,
    "alt": "json",
    "num": 2,
    "q": "cat sock ship hero monkey footnoteref baby match"
})

它返回:

{'kind': 'customsearch#search',
 'queries': {'request': [{'count': 2,
    'cx': '<key>',
    'inputEncoding': 'utf8',
    'outputEncoding': 'utf8',
    'safe': 'off',
    'searchTerms': 'cat sock ship hero monkey baby footnoteref match',
    'title': 'Google Custom Search - cat sock ship hero monkey baby footnoteref match',
    'totalResults': '0'}]},
 'searchInformation': {'formattedSearchTime': '0.22',
  'formattedTotalResults': '0',
  'searchTime': 0.218722,
  'totalResults': '0'},
 'spelling': {'correctedQuery': 'cat sock ship hero monkey baby footnote ref match',
  'htmlCorrectedQuery': 'cat sock ship hero monkey baby <b><i>footnote ref</i></b> match'},
 'url': {'template': 'https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&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',
  'type': 'application/json'}}

两个查询之间的唯一区别是后者有单词&#34; footnoteref&#34;在里面。我没有在文档中找到关于这个词及其对API行为的影响的任何信息。怎么了?有没有办法禁用此行为,或保留字列表?现在,我只是要从查询中删除有问题的单词,但我恐怕每次出现其他有问题的单词时,我都会玩一个删除单词的游戏。

1 个答案:

答案 0 :(得分:4)

我在谷歌搜索了"cat sock ship hero monkey footnoteref baby match""cat sock ship hero monkey baby match"

您说"cat sock ship hero monkey footnoteref baby match"没有返回任何内容,这是因为Google实际上建议使用不同的搜索:'cat sock ship hero monkey baby footnote ref match'

当你没有结果时,你应该从搜索中删除一个单词(我将从最后一个单词开始)然后再试一次。或者您应该尝试使用建议的搜索,例如:'cat sock ship hero monkey baby footnote ref match'

搜索工作很快,我建议您实施以下技术:

  • a)您的搜索包含少于3-4个单词。你应该重复一遍 搜索但添加来自Google 'correctedQuery'的新单词 建议。
  • b)您的搜索包含4个以上的字词。你应该删除最后一个 单词或“链接单词”,如“for”,“and”..并重复搜索。
祝你好运。