程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> asp.net實現調用百度pai 在線翻譯英文轉中文

asp.net實現調用百度pai 在線翻譯英文轉中文

編輯:關於ASP.NET

     注冊個百度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 style=""font-size: 18px; font-weight: bold;"">(.+?)</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<jsonss>(atitle);
    title = aa2.trans_result.First().dst;
    enstr = enstr.Trim();
    string val = "tt";
    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<jsonss>(a);
    val += aa.trans_result.First().dst + "。";
    ++i;
    if (i % 5 == 0)
    {
    System.Threading.Thread.Sleep(15000);
    val += "ntt";
    }

     


    System.Threading.Thread.Sleep(1000);
    });
    cc.title = title;
    cc.val = val;
    db.content.AddObject(cc);
    db.SaveChanges();
    }
    }
    public string ReHtml(string HTML)
    {
    string pattern = @"<[sS]*?>";
    Regex regex = new Regex(pattern);
    HTML = regex.Replace(HTML, "");
    return HTML;
    }


    //中文轉為UNICODE字符 forget never


    public string ctu(string str)
    {
    string outStr = "";
    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 outStr = "";
    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)
    {
    outStr = ex.Message;
    }
    }
    return outStr;
    }
    }
    }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved