Raspando HTML de Google Translate

.net c# google-translate html-agility-pack winforms

Pregunta

Quiero traducir una cadena usando Google Translator.

Mi cadena de muestra es "this is my string" .

Quiero usar HTML Agility Pack para analizar documentos HTML.

Intenté esto:

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

Pero no obtengo resultados.

Mi objetivo es traducir una cadena completa utilizando Google Translate y mostrar la cadena traducida en una etiqueta en Windows Forms.

¿Cómo puedo hacer esto?

Respuesta popular

Esta es una mala idea. Como los comentaristas han señalado, Google ofrece una interfaz programática como un servicio de pago. Google seguramente tiene implementadas funciones de seguridad para tratar de bloquear exactamente lo que estás haciendo, y es por eso que no funciona. Quizás pueda hacerlo funcionar de alguna manera, pero incluso así siempre estaría en peligro de que Google mejore su seguridad y que su script sea bloqueado nuevamente. Además, es casi seguro que rompe los términos de uso de Google.

Actualización 2017: la API de Microsoft Translator ahora es compatible con el bengalí y es gratuita hasta por dos millones de caracteres por mes.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué