我正在尝试使用Google翻译的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

所以我会有网址https://translate.google.com/#en/hi/welcome并且结果是आपका स्वागत है

但是,当我选择带有其子节点as-doc.DocumentNode.SelectSingleNode("//span[@id='result_box']").ChildNodes)的结果容器时,它不在结果中找到该结果容器。因此,就我而言,我没有得到此api工作。

编辑-
网址中的结果容器

<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# - 如何使用Google Translator API翻译单词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25377428/

10-10 17:29
查看更多