我想提交以下类似的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库/类......?)
答案 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在他的回答中说明。