您的位置:首页 > 编程语言 > Go语言

抓取 在线翻译(Google、Yahoo)

2008-04-11 17:02 253 查看
最近公司要求我们做一个调用Google、Yahoo全文翻译的工具,在园子搜索了一下,找到了一篇(不大记得了,好像是VB写的),看了他的做法以后,做了一点点改进,发出来给需要的朋友看看,有什么不对的地方请大家扶正!

using System;

using System.Collections.Generic;

using System.Text;

using System.Net;

using System.IO;

using System.Threading;

namespace Transn

struct LanguageType

private void LoadLanguage(ComboBox comboBox)

void GoogleT(TsMachine tm, string content, string languetype)

void YahooT(TsMachine tm, string content, string languetype)

public string Godict_T(string texts, string languages)

{

string payload = "from_content=" + texts + "&langpair=" + languages + "";

WebRequest req = HttpWebRequest.Create(@"http://trans.godict.com/index.php");

req.Credentials = CredentialCache.DefaultNetworkCredentials;

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";

req.Timeout = 50000;

req.ContentLength = payload.Length;

Encoding encoding = Encoding.GetEncoding("UTF-8");

Byte[] bytes = encoding.GetBytes(payload);

req.ContentLength = bytes.Length;

Stream newStream = null;

newStream = req.GetRequestStream();

newStream.Write(bytes, 0, bytes.Length);

newStream.Close();

HttpWebResponse res = (HttpWebResponse)req.GetResponse();

if (res.StatusDescription.ToLower() != "ok")

{

Console.WriteLine("无法连接!");

}

Stream dataStream = res.GetResponseStream();

StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(res.CharacterSet));

string responseFromServer = null;

responseFromServer = reader.ReadToEnd();

reader.Close();

dataStream.Close();

res.Close();

string content = responseFromServer;

string s = "<textarea name=q rows=12 style=\"width: 740px;\" wrap=PHYSICAL dir=ltr>";

int start = content.IndexOf(s);

int end = content.IndexOf("</textarea>", start);

return content.Substring(start + s.Length, end - start - s.Length);

}

结果发现这个谷词的res.CharacterSet(相应流)永远是iso-8859-1 ,这就郁闷了。 不知道这个地方如何解码,有知道的朋友请指教 !
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: