asp.net c#轻松调用百度在线翻译功能

  

首先去百度:注册个apikey

    http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%99%BE%E5%BA%A6%E7%BF%BB%E8%AF%91API

    获取代码:

添加如下代码:

 using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    using System.Web.Script.Serialization;

    using System.Text.RegularExpressions;

    namespace Fangyi

    {

    public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    GSEntities db = new GSEntities();

    for (int i = 740; i < 900000; i++)

    {

    try

    {

    System.Threading.Thread.Sleep(100);

    GetUrl("http://www.52mvc.com/story/love/" + i + ".html",db); //采集

    }

    catch (Exception ex)

    {

    System.Threading.Thread.Sleep(1500);

    }

    }

    db.Dispose();

    }

    private void GetUrl(string url, GSEntities db)

    {

    content cc = new content();

    string apikey = "WqLOfG9o2VS1lriX4mz3mDj8";

    var enstr = GetHtml.getHtml(url, null);

    var title = Regex.Match(enstr.Replace("\n",""), @"(.+?)\<\/font\>").Groups[1].Value;

    enstr = Regex.Replace(enstr, @"\r|\n", "");

    enstr = ReHtml(enstr);

    enstr = Regex.Match(enstr, @"双击或拖选\)(.+?) ").Groups[1].Value;

    var atitle = GetHtml.getHtml("http://openapi.baidu.com/public/2.0/bmt/translate?client_id="

    + apikey + "&q=" + title + "&from=auto&to=auto", null);

    JavaScriptSerializer jss2 = new JavaScriptSerializer();

    var aa2 = jss2.Deserialize(atitle);

    title = aa2.trans_result.First().dst;

    enstr = enstr.Trim();

    string val = "\t\t";

    if (enstr.Length < 2000)

    {

    int i = 0;

    var list = enstr.Replace(" ", "").Replace(""", "“").Split('.').ToList();

    list.ForEach(c =>

    {

    var a = GetHtml.getHtml("http://openapi.baidu.com/public/2.0/bmt/translate?client_id="

    + apikey + "&q=" + c + "&from=auto&to=auto", null);

    JavaScriptSerializer jss = new JavaScriptSerializer();

    var aa = jss.Deserialize(a);

    val += aa.trans_result.First().dst + "。";

    ++i;

    if (i % 5 == 0)

    {

    System.Threading.Thread.Sleep(15000);

    val += "\n\t\t";

    }

    System.Threading.Thread.Sleep(1000);

    });

    cc.title = title;

    cc.val = val;

    db.content.AddObject(cc);

    db.SaveChanges();

    }

    }

    public string ReHtml(string HTML)

    {

    string pattern = @"<[\s\S]*?>";

    Regex regex = new Regex(pattern);

    HTML = regex.Replace(HTML, "");

    return HTML;

    }

    //中文转为UNICODE字符 forget never

    public string ctu(string str)

    {

    string utStr = "";

    if (!string.IsNullOrEmpty(str))

    {

    for (int i = 0; i < str.Length; i++)

    {

    //将中文字符转为10进制整数,然后转为16进制unicode字符

    outStr += "\\u" + ((int)str[i]).ToString("x");

    }

    }

    return outStr;

    }

    //UNICODE字符转为中文

    public string utc(string str)

    {

    string utStr = "";

    if (!string.IsNullOrEmpty(str))

    {

    string[] strlist = str.Replace("\\", "").Split('u');

    try

    {

    for (int i = 1; i < strlist.Length; i++)

    {

    //将unicode字符转为10进制整数,然后转为char中文字符 asp.net

    outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber);

    }

    }

    catch (FormatException ex)

    {

    utStr = ex.Message;

    }

    }

    return outStr;

    }

    }

    }

当然用类似的方法也可以添加Google翻译,以及微软在线翻译功能。

end

你可能感兴趣的:(asp.net c#轻松调用百度在线翻译功能)