【发布时间】:2011-07-05 05:13:24
【问题描述】:
我用 C# 构建了迷你问答系统。我需要通过谷歌搜索检索文档。 google tools 名称是什么,我可以在我的项目中使用它吗?
谢谢
【问题讨论】:
标签: c# document information-retrieval
我用 C# 构建了迷你问答系统。我需要通过谷歌搜索检索文档。 google tools 名称是什么,我可以在我的项目中使用它吗?
谢谢
【问题讨论】:
标签: c# document information-retrieval
一种可能性是设置custom Google search engine。然后你还需要创建一个开发者密钥,我相信这是在the console 下完成的。
设置完成后,您可以使用如下代码进行 REST 样式调用,将结果检索为 JSON:
WebClient w = new WebClient();
string result;
string uri;
string googleAPIKey = "your developer key";
string googleEngineID = "your search engine id";
string template = "https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}&start={3}&alt=json";
int startIndex = 1;
int gathered = 0;
uri = String.Format(template, googleAPIKey, googleEngineID, "yoursearchstring", startIndex);
result = w.DownloadString(uri);
要从 JSON 结果中提取信息,您可以使用 Json.NET 之类的内容。它使阅读信息变得非常容易:
JObject o = JObject.Parse(result);
然后您可以通过一行代码直接访问所需的信息。
一条重要信息是搜索 API 的免费使用非常有限(每天 100 个请求)。因此,对于现实世界的应用程序,可能需要为搜索付费。但是根据您的使用方式,每天 100 个请求可能就足够了。我使用 Google 搜索 API 编写了一个小混搭来搜索感兴趣的 Stackoverflow 站点信息,然后使用 StackExchange API 检索信息。对于个人用途,它非常有效。
【讨论】:
我以前从未使用过它(它是 alpha 版),但请查看 Google APIs for .NET Framework 库。
【讨论】: