0

英語からベンガル語までの意味を示す辞書アプリケーションを使用しています。私は大きなバングラ語の意味を持っていませんが、私は巨大な英語の単語を持っています.この英語の単語を使用して、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 でした。しかし、ここではうまくいきませんでした。「申し訳ありませんが、意味が見つかりません」と表示されます。ここで何が問題ですか????

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 に答える