Google 自定义搜索 API 中的保留字
Reserved words in Google Custom Search API
我正在使用 Google 搜索 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"
})
和 returns 结果的语法符合 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"
})
它returns这个:
{'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'}}
这两个查询之间的唯一区别是后者包含单词 "footnoteref"。我没有在文档中找到任何关于这个词及其对 API 行为的影响的信息。怎么了?有没有办法禁用此行为或保留字列表?现在,我只是要从查询中删除有问题的词,但恐怕我要玩一个打地鼠游戏,每次出现其他有问题的词时都会删除这些词。
我在 google 上搜索了 "cat sock ship hero monkey footnoteref baby match"
和 "cat sock ship hero monkey baby match"
。
你说 "cat sock ship hero monkey footnoteref baby match"
没有 return 任何东西,那是因为 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 个。你应该删除最后一个
单词或 "link word" 如 "for"、"and".. 并重复搜索。
祝你好运。
我正在使用 Google 搜索 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"
})
和 returns 结果的语法符合 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"
})
它returns这个:
{'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'}}
这两个查询之间的唯一区别是后者包含单词 "footnoteref"。我没有在文档中找到任何关于这个词及其对 API 行为的影响的信息。怎么了?有没有办法禁用此行为或保留字列表?现在,我只是要从查询中删除有问题的词,但恐怕我要玩一个打地鼠游戏,每次出现其他有问题的词时都会删除这些词。
我在 google 上搜索了 "cat sock ship hero monkey footnoteref baby match"
和 "cat sock ship hero monkey baby match"
。
你说 "cat sock ship hero monkey footnoteref baby match"
没有 return 任何东西,那是因为 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 个。你应该删除最后一个 单词或 "link word" 如 "for"、"and".. 并重复搜索。
祝你好运。