当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 远程抓取GOOGLE的自动翻译结果

ASP.NET
asp.net 使用Silverlight操作ASPNETDB数据库
ASP.NET 前后台调用方法
ASP.NET中等安全模式的一些经验分享
asp.net 打印控件使用方法
网站开发技术:ASP.NET 2.0搭建网站
ASP.NET实例教程:创建数据透视表
ASP.NET 4进行SEO优化提高网站排名和权重
ASP.NET实例教程:订阅 GeoRSS 订阅源
ASP.NET页面间数据传递的9种方法
ASP.NET教程:网页表单多个按钮完成不同功能
Asp.net的服务器推技术 (Server Push)
asp.net 无刷新附件上传实现方法
ASP.NET 定制简单的错误处理页面实现代码
c# 在WebBrowser中用SendMessage模拟鼠标点击
asp.net 表单验证新思路
.NET从优酷专辑中采集所有视频及信息(VB.NET代码)
VS2005 水晶报表在时部署时遇到的问题
ASP.NET 输出图片简单代码
一天精通asp.net的学习经验小结
DataGridView中绑定DataTable数据及相关操作实现代码

ASP.NET 中的 远程抓取GOOGLE的自动翻译结果


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 174 ::
收藏到网摘: n/a

 

以下为引用的内容:
 1        Function RemoveHTML()Function RemoveHTML(strhtml)
 2            if strhtml<>"" then
 3                 dim s_str as string
 4                     s_str=regex.replace(strHTML,"<[^>]+>","")
 5                     s_str=replace(s_str,"&nbsp;","")
 6                     return s_str
 7            end if
 8        End Function
 9       
10        Function china_to_english()Function china_to_english(texts,languages)
11            Dim payload As String = "hl=zh-CN&ie=UTF8&text="& texts &"&langpair="& languages &""
12            dim str_return as string 
13            Dim req As WebRequest = WebRequest.Create("http://translate.google.com/translate_t") ' 开始取连接.
14            req.Credentials = CredentialCache.DefaultCredentials       '取得默认
15            req.Method = "POST"                                        '以POST方式发送,这里默认是以GET方式发送
16            req.ContentType = "application/x-www-form-urlencoded"      'POST方式需在传送这个编码,如果上传文件,则修为multipart/form-data
17            req.timeout=10000                                          '连接超时定时
18            req.ContentLength = payload.Length                         '头部长度
19            Dim encoding As Encoding = Encoding.GetEncoding("UTF-8")   '转换成流,大部网站一般转换成UTF-8就可以了,注意是大写的编码
20            Dim bytes As Byte() = Encoding.GetBytes(payload)           '转换成流
21            req.ContentLength = bytes.Length                           '传送流的长度
22            Dim newStream As Stream = req.GetRequestStream()           '转换写入
23            newStream.Write(bytes, 0, bytes.Length)                    '写入传送流
24            newStream.Close()                                          '关闭
25            '上面发送完成,下面取得服务器返回
26            Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)  ' 传递返回标识
27            if res.StatusDescription="ok" then  ' 返回取得状态.
28               current.response.write("暂时无法连接到网站,请换用另一个程序")
29               current.response.end()
30            end if
31            Dim dataStream As Stream = res.GetResponseStream()         ' 返回给指针
32            Dim reader As New StreamReader(dataStream,encoding.getencoding("gb2312")) ' 读
33            Dim responseFromServer As String = reader.ReadToEnd()      ' 读取所有
34           
35            str_return=responseFromServer                              '赋值回传
36           
37            reader.Close()                                             '接下来三个关闭
38            dataStream.Close()
39            res.Close()
40
41            dim ss as string = str_return
42            ss = regex.replace(ss,"(?i:(.+)(\<div)(.+)(\>)(.+)(\<\/div\>)(.+))","$5") '提取我们所要的译文
43            ss = RemoveHTML(ss)                                       '删除HTML
44            ss = ss.substring(3)                                      '删除翻译二字
45            return ss                                                 '函数返回
46    End function
47       
48    在调用china_to_english(texts,languages)需要传两个参数第一个为要译的文字,第二个是要进行相对译的语种代码.

  
例:中译英,其第二个参数为:zh-Cn|en

我导入的命名空间如下:

以下为引用的内容:

Imports System
Imports System.Web
Imports System.IO
Imports Microsoft.VisualBasic
Imports System.Web.HttpContext
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Net