如何使用.net / c#阅读Google计算查询结果?

时间:2011-01-05 12:53:03

标签: c# .net

我想提交以下类似的Google查询:

...来自C#控制台应用程序并捕获Google报告的结果(并忽略任何指向其他网站的链接)。是否有特定的Google API可以帮助我完成此任务?

我从Launchy(launchy.net)工具中得到了这个想法。插件GCalc执行此操作,我还找到了此模块的源文件:
http://launchy.svn.sourceforge.net/viewvc/launchy/tags/2.5/plugins/gcalc/gcalc.cpp?revision=614&view=markup

看起来GCalc根本不使用任何Google API。但我不知道如何在C#中做同样的事情,我宁愿使用适当的API。但如果没有,我可以使用一些帮助/指针来解释如何将GCalc功能复制到C#(.net库/类......?)

3 个答案:

答案 0 :(得分:2)

使用API​​时,Google计算器结果不会显示。因此,如果你想要它们,你将不得不刮掉页面。请小心这样做,因为这违反了Google的服务条款,因此如果您发送过多的频繁请求,您的IP将被禁止。

获得结果页面后,使用html解析器。结果是<b>标记(例如<b>1 + 1 = 2</b>;如果不存在,那么您没有计算器结果)。请注意结果中的<sup>标记(例如<b>(1 (m^2) kg) / 2 = 0.5 m<sup>2</sup> kg</b>)。您可能还想解码html实体。

答案 1 :(得分:0)

您可以使用WebClient.DownloadString(String url)。这样你就可以将页面(html)作为字符串。 你必须解析结果,但这不应该很难。 HttpAgilityPack是一个很好的c#html解析器,它使用XPath进行数据检索。

答案 2 :(得分:0)

为什么不使用HTTPWebRequest,然后将结果解析为macrog在他的回答中说明。