c# - 如何使用谷歌翻译 API 翻译单词?

标签 c#

我正在尝试使用谷歌翻译器的 api 获取转换后的文本。

public JsonResult getCultureMeaning(string word, string langcode)
{

    string url = String.Format("https://translate.google.com/#en/" + langcode+ "/" + word + "");
    HtmlWeb web = new HtmlWeb();
    HtmlDocument doc = web.Load(url);
    string m = "";
    foreach (HtmlNode node in doc.DocumentNode.SelectSingleNode("//span[@id='result_box']").ChildNodes)
    {
        m += node.InnerHtml;
    }
    return Json(m, JsonRequestBehavior.AllowGet);
}

在上面的方法中,我传递参数,假设 wordWelcome 并且 langcodehi这种情况。

所以我会有 url https://translate.google.com/#en/hi/welcome结果是

但是当我选择结果容器及其子节点时- doc.DocumentNode.SelectSingleNode("//span[@id='result_box']").ChildNodes) 然后它不会在结果中找到这个结果容器。因此,在我的案例中我没有得到这个 api。

编辑- 来自 url 的结果容器-

<span id="result_box" class="short_text" lang="hi"><span class="hps">आपका स्वागत है</span></span>

我应该如何处理它才能使其正常工作。作为引用,我正在使用 HtmlAgilityPack

最佳答案

如果您检查页面请求,您可能会注意到,实际的翻译请求是通过 AJAX 完成的,您的翻译的示例查询是:https://translate.google.com/translate_a/single?client=t&sl=en&tl=hi&hl=en&dt=bd&dt=ex&dt=ld&dt=md&dt=qc&dt=rw&dt=rm&dt=ss&dt=t&dt=at&dt=sw&ie=UTF-8&oe=UTF-8&ssel=0&tsel=0&q=welcome

它返回 JSON,你可以检查它并得到你要找的东西(数据很大,所以我不会在这里发布)

关于c# - 如何使用谷歌翻译 API 翻译单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377428/

相关文章:

c# - 如何在 C# 中修复此合并排序的实现

c# - 在锁屏Windows Phone 8.1下播放音频

c# - 如何使用 Linq to XML 获取这些 XML 值?

c# - 将多个 msi 安装程序合并为一个安装程序

c# - 为什么我的位图保存为两边都有黑条的 jpg?

c# - 默认 ping 超时

c# - 如何使用 C# 或 Java 创建音频 CD

c# - 如何链接接受 Func<> 委托(delegate)的方法重载? (C#)

c# - 安装应用更新后,应用会丢失所有设置

c# - 使用 VSTO 检测 Word 2007 文档中的当前签名