1

我需要一种在 Windows Azure Marketplace 中使用带有 bing 搜索 API 的 kby Date 来获取最新消息(例如最近 24 小时)的 c sharp 代码,或任何其他方式来控制新闻服务操作检索到的新闻更新(仅当天的最新消息)。

4

1 回答 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 小时框架内的天数,而“新鲜”则相反。

  1. 获取前 N 个新闻项目(假设 N 的初始值为 50)。
  2. 如果结果不包含陈旧的新闻项目 - 然后检索下一个(*) N 个新闻项目并重复此操作,直到结果中出现陈旧的新闻。
  3. 忽略陈旧的。Assing N = 新鲜新闻的数量。

  4. 下次每次重复步骤 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 回答