您如何构建 Bing 认知服务 API 新闻请求?
How do you structure a Bing Cogntivie Services API News request?
我目前正在编写一个使用 Bing 认知服务搜索 API 的应用程序,我正在尝试抓取特定的新闻结果,但 运行 遇到了一些问题
对于普通搜索,请求的结构非常简单:
def bing_search(query):
url = 'https://api.cognitive.microsoft.com/bing/v5.0/search'
payload = {'q': query, 'freshness': 'week', 'mkt': 'en-us'}
headers = {'Ocp-Apim-Subscription-Key': 'API KEY', 'X-MSEdge-ClientID': ''}
r = requests.get(url, params=payload, headers=headers)
return r.json()
这非常有效,并且 returns 在我添加查询时得到正确的结果,但那只是为了正常搜索。
当我尝试使用新闻搜索时,我按照文档的建议将 url 变量更改为此:
https://api.cognitive.microsoft.com/bing/v5.0/news?
然而,当我 运行 插入查询时,它 returns 一个 json 只包含当天的头条新闻,与查询完全不相关我加了。
我 url 的结构是否正确?如果有人可以帮助我构建请求,使其 returns 得到正确的结果,我将不胜感激。
谢谢:)
将新闻搜索视为具有 2 种操作模式是很有用的:
Categorical/Trending.格式为:
https://api.cognitive.microsoft.com/bing/v5.0/news?category=FOO_CATEGORY&...&mkt=en-us&...
基于查询。格式为:
https://api.cognitive.microsoft.com/bing/v5.0/news/search?q=FOO_QUERY&...
要在新闻搜索中输入 q=...
参数,您需要使用第二种 "Query-based" 格式。
如果要进行分类搜索,则需要在 mkt
参数中指定 en-US
或 en-GB
,然后将 FOO_CATEGORY
具有以下之一:
NEWS_CATEGORIES_US = (
'Business',
'Entertainment',
'Entertainment_MovieAndTV',
'Entertainment_Music',
'Health',
'Politics',
'ScienceAndTechnology',
'Science',
'Technology',
'Sports',
'Sports_Golf',
'Sports_MLB',
'Sports_NBA',
'Sports_NFL',
'Sports_NHL',
'Sports_Soccer',
'Sports_Tennis',
'Sports_CFB',
'Sports_CBB',
'US',
'US_Northeast',
'US_South',
'US_Midwest',
'US_West',
'World',
'World_Africa',
'World_Americas',
'World_Asia',
'World_Europe',
'World_MiddleEast',
)
NEWS_CATEGORIES_GB = (
'Business',
'Entertainment',
'Health',
'Politics',
'ScienceAndTechnology',
'Sports',
'UK',
'World',
)
如果您仍然遇到问题,这里有一个简单的 python 2.7 界面:https://github.com/rtruxal/bingapipy
我目前正在编写一个使用 Bing 认知服务搜索 API 的应用程序,我正在尝试抓取特定的新闻结果,但 运行 遇到了一些问题
对于普通搜索,请求的结构非常简单:
def bing_search(query):
url = 'https://api.cognitive.microsoft.com/bing/v5.0/search'
payload = {'q': query, 'freshness': 'week', 'mkt': 'en-us'}
headers = {'Ocp-Apim-Subscription-Key': 'API KEY', 'X-MSEdge-ClientID': ''}
r = requests.get(url, params=payload, headers=headers)
return r.json()
这非常有效,并且 returns 在我添加查询时得到正确的结果,但那只是为了正常搜索。
当我尝试使用新闻搜索时,我按照文档的建议将 url 变量更改为此:
https://api.cognitive.microsoft.com/bing/v5.0/news?
然而,当我 运行 插入查询时,它 returns 一个 json 只包含当天的头条新闻,与查询完全不相关我加了。
我 url 的结构是否正确?如果有人可以帮助我构建请求,使其 returns 得到正确的结果,我将不胜感激。
谢谢:)
将新闻搜索视为具有 2 种操作模式是很有用的:
Categorical/Trending.格式为:
https://api.cognitive.microsoft.com/bing/v5.0/news?category=FOO_CATEGORY&...&mkt=en-us&...
基于查询。格式为:
https://api.cognitive.microsoft.com/bing/v5.0/news/search?q=FOO_QUERY&...
要在新闻搜索中输入 q=...
参数,您需要使用第二种 "Query-based" 格式。
如果要进行分类搜索,则需要在 mkt
参数中指定 en-US
或 en-GB
,然后将 FOO_CATEGORY
具有以下之一:
NEWS_CATEGORIES_US = (
'Business',
'Entertainment',
'Entertainment_MovieAndTV',
'Entertainment_Music',
'Health',
'Politics',
'ScienceAndTechnology',
'Science',
'Technology',
'Sports',
'Sports_Golf',
'Sports_MLB',
'Sports_NBA',
'Sports_NFL',
'Sports_NHL',
'Sports_Soccer',
'Sports_Tennis',
'Sports_CFB',
'Sports_CBB',
'US',
'US_Northeast',
'US_South',
'US_Midwest',
'US_West',
'World',
'World_Africa',
'World_Americas',
'World_Asia',
'World_Europe',
'World_MiddleEast',
)
NEWS_CATEGORIES_GB = (
'Business',
'Entertainment',
'Health',
'Politics',
'ScienceAndTechnology',
'Sports',
'UK',
'World',
)
如果您仍然遇到问题,这里有一个简单的 python 2.7 界面:https://github.com/rtruxal/bingapipy