0

我正在使用一个字典应用程序,它显示从英语到孟加拉语的含义。我没有很大的孟加拉语含义,但我有一个很大的英语单词。通过使用这个英语单词,我想使用谷歌翻译器翻译成孟加拉语,从而制作我的词典数据库。所以我从谷歌翻译中删除了含义。我使用了以下代码:

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");

该元素是萤火虫工具上的div.gt-baf-cell.gt-baf-word。但这在这里不起作用。它显示“对不起,未找到含义”。这里有什么问题????

4

2 回答 2

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

正如您所看到的,它与您在浏览器上看到的不同,这就是您的代码无法正常工作的原因。

有关更多信息和替代方案,请查看

于 2013-03-04T15:58:06.137 回答
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”?

于 2013-05-24T05:41:37.017 回答