我正在尝试使用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);
}
在以上方法中,我要传递参数,例如在这种情况下,如果
word
是Welcome
并且langcode
是hi
。所以我会有网址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/