我需要一种在 Windows Azure Marketplace 中使用带有 bing 搜索 API 的 kby Date 来获取最新消息(例如最近 24 小时)的 c sharp 代码,或任何其他方式来控制新闻服务操作检索到的新闻更新(仅当天的最新消息)。
问问题
1449 次
1 回答
1
这是Bing API v2 参考。
这是如何检索 News的代码示例。
请注意,代码示例是用 JS 编写的,但它们看起来非常清晰,可以轻松转换为 c#。
ps我没有明确地写一段代码get the news for last 24 hrs
,但是有这么好的事情:
for (var i = 0; i < results.length; ++i)
{
// omitted to make answer shorted
resultStr = "<a href=\""
+ results[i].Date // <--
// omitted to make answer shorted
}
更新:如何仅获取过去 24 小时的新闻
我看到了通过以下方式获取过去 24 小时新闻的解决方案:
让我们定义stale news item
为 24 小时框架内的天数,而“新鲜”则相反。
- 获取前 N 个新闻项目(假设 N 的初始值为 50)。
- 如果结果不包含陈旧的新闻项目 - 然后检索下一个(*) N 个新闻项目并重复此操作,直到结果中出现陈旧的新闻。
忽略陈旧的。Assing N = 新鲜新闻的数量。
下次每次重复步骤 2-3 以获取最新消息。
免责声明请注意,该算法在性能方面远非最佳,它只是为了展示主要思想。
*
如何加载下 N 个新闻项目。应该可以通过“$top”和“$skip”查询选项将数据加载为页面来实现。快速入门指南中的示例是如何获取新闻(“执行新闻服务操作”部分)。
// This is the query expression.
string query = "Xbox Live Games";
// Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl));
// The market to use.
string market = "en-us";
// Get news for science and technology.
string newsCat = "rt_ScienceAndTechnology";
// Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey);
// Build the query, limiting to 10 results.
var newsQuery =
bingContainer.News(query, null, market, null, null, null, null, newsCat, null);
newsQuery = newsQuery.AddQueryOption("$top", 10);
// Run the query and display the results.
var newsResults = newsQuery.Execute();
foreach (var result in newsResults)
{
Console.WriteLine("{0}-{1}\n\t{2}",
result.Source, result.Title, result.Description);
}
注意线路newsQuery = newsQuery.AddQueryOption("$top", 10);
。应该可以(不确定是否可以)指定"$skip"
选项,这使您能够使用分页功能。
希望这可以帮助。
于 2013-01-14T10:10:27.410 回答