1

Google Translator を使用して文字列を翻訳したいと考えています。

私のサンプル文字列は"this is my string".

HTML Agility Pack を使用して HTML ドキュメントを解析したいと考えています。

私はこれを試しました:

using HtmlAgilityPack; 

........

var webGet = new HtmlWeb();
var document = webGet.Load(
    "http://translate.google.com/#en/bn/this%20is%20my%20string");

var node = document.DocumentNode.SelectNodes(
    "//span[@class='short_text' and @id='result_box']");

if (node != null)
{
    foreach (var xx in node)
    {
        x = xx.InnerText;
        MessageBox.Show(x);
    }
}

しかし、私は結果を得ません。

私の目的は、Google 翻訳を使用して完全な文字列を翻訳し、翻訳された文字列を Windows フォームのラベルに表示することです。

これどうやってするの?

4

3 に答える 3

6

これは悪い考えです。コメント投稿者が指摘しているように、Google は有料サービスとしてプログラム インターフェイスを提供しています。Google には確かに、ユーザーが行っていることを正確にブロックしようとするセキュリティ機能が備わっているため、機能していません。おそらく、何らかの方法で機能させることができますが、それでも、Google がセキュリティを改善し、スクリプトが再びブロックされるという危険に常にさらされることになります. さらに、ほぼ確実に Google の利用規約に違反しています。

2017 年更新: Microsoft Translator APIはベンガル語をサポートするようになり、1 か月あたり最大 200 万文字まで無料です。

于 2013-01-15T13:59:21.953 に答える
0

スクリーン スクレイピングに頼るのではなく、Google が翻訳サービスに提供している API の使用を検討する必要があります。

一部のドキュメントはここにあります

アップデート:

スクリーン スクレイピング アプローチの問題は、翻訳アプリケーションが Ajax を使用してサーバー側を呼び出し、翻訳を取得することにあると思います。を使用してダウンロードしたときに得られるページHtmlWebは単なる JS アプリケーションであり、実際には翻訳は含まれていません。ページからサーバーへの呼び出しが行われるまで、これは入力されません。

于 2013-01-15T13:51:09.660 に答える