我正在尝试使用谷歌翻译器的 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
这种情况。
所以我会有 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/