我正在使用一个字典应用程序,它显示从英语到孟加拉语的含义。我没有巨大的孟加拉语含义,但我有一个巨大的英语单词。通过使用这个英语单词,我想使用谷歌翻译器翻译成孟加拉语,从而使我的词典数据库。所以我从google翻译器中删除了含义。我使用了以下代码:
string meaning = "", bangla = "";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://translate.google.com/#en/bn/like");
HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//div[@class='gt-baf-cell gt-baf-word']");
if (node != null)
{
foreach (HtmlNode n in node)
{
meaning = n.InnerText;
meaning = meaning.Trim();
MessageBox.Show(meaning);
}
}
else
MessageBox.Show("Sorry,the meaning is not found");
元素在firebug工具上是 div.gt-baf-cell.gt-baf-word 。 但它在这里不起作用。它显示“对不起,意思未找到”。 这有什么问题????
答案 0 :(得分:0)
我认为使用HtmlAgilityPack无法做到这一点
我试过了:
web.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0";
doc = web.Load("http://translate.google.com/#en/bn/like");
webBrowser1.DocumentText = doc.DocumentNode.OuterHtml;
并给出了这个结果:http://jsbin.com/irijiz/1/edit
您可以看到它与您在浏览器上看到的不一样,这就是您的代码无法正常工作的原因。
有关更多信息和替代方法,请检查this
答案 1 :(得分:0)
你的错误代码是 HtmlNodeCollection node = doc.DocumentNode.SelectNodes(“// div [@ class ='gt-baf-cell gt-baf-word']”);
因为doc.DocumentNode.InnerText不存在div class = gt-baf-cell gt-baf-word
检查doc.DocumentNode.InnerText。
为什么你试图找到不存在的“gt-baf-cell gt-baf-word”?