| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net应用技巧 >> 技术文摘正文
最新推荐 更多内容
VB.Net抓取网页乱码的解决方法[乐博网原创]
VB.Net抓取网页乱码的解决方法[乐博网原创]
作者:Shiny    来源:乐博网原创     更新时间:2011-2-18

文章为本站乐博网( Lob.cn )成员Shiny原创,可以自由转载和传播,转载请保留本站的作者和信息来源,谢谢!如果大家对.Net编程开发或者关于“VB.Net抓取网页乱码的解决方法”的话题感兴趣,就一起www.SmallBasic.cn(乐博网旗下技术社区) 或者加入.Net超级QQ群 40797788  一起讨论,把他做得更完善吧! 

在调试VB.Net调用Microsoft.XMLHttp组件抓取网页时,遇到了抓取中文字符出现乱码,经测试若网页meta标签charset为utf-8的网页不会乱码,而charset为Gb2312的则会出现乱码,本文提供了一个完整的解决方法,希望对研究VB.Net抓取网页或者VB.Net实现采集功能的朋友有所帮助。

以下为VB.Net抓取网页的函数LobDotCn  注:url_Link为抓取的目标页面 IsGb2312为是否Gb2312字符

 Public Function LobDotCn(ByVal url_Link As String, ByVal IsGb2312 As Boolean) 

        On Error Resume Next
        Dim XmlHttp As Object
        XmlHttp = CreateObject("Microsoft.XMLHttp")
        XmlHttp.Open("POST", url_Link, False)
        XmlHttp.Send()
        Dim WebContent As Object
        Dim Str_WebContent As String
        If IsGb2312 Then
               WebContent = XmlHttp.ResponseBody
               Str_WebContent = System.Text.Encoding.Default.GetString(WebContent)
        Else
               WebContent = XmlHttp.ResponseText
               Str_WebContent = WebContent.ToString
        End If
        XmlHttp = Nothing
        LobDotCn = Str_WebContent

End Function

调用方式 :

        变量  = LobDotCn("http://www.lob.cn", True)   '抓取 Gb2312网页     

        变量  = LobDotCn("此处填写网址", False)    ' 抓取utf-8网页


附Microsoft.XMLHttp组件的相关说明:

Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )
bstrMethod:  数据传送方式,即GET或POST。
bstrUrl:     服务网页的URL。
varAsync:   是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
bstrUser:    用户名,可省略。
bstrPassword:用户口令,可省略。
 
Send( varBody )
varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。
 
setRequestHeader( bstrHeader, bstrvalue )
bstrHeader:HTTP 头(header)
bstrvalue: HTTP 头(header)的值

如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded") 
 
XMLHTTP属性:
onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
responseBody:    结果返回为无符号整数数组。
responseStream:   结果返回为IStream流。
responseText :    结果返回为字符串。
responseXML:    结果返回为XML格式数据。

  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    C#查询网页pr数值的方法
    ASP.NET下载链接中文文件名乱码的解决方法
    Asp.Net链接传递中文的解决方案
    关于ASP.NET中HTML编码和URL编码的介绍
    解决C#读写txt文件中文(汉字)乱码的问题
    VB.Net模拟点击网页的方法
    WebBrowser抓网页乱码的解决方法[乐博网原创]
    VB.Net下载网页的方法
    VB.Net抓取网页图片的方法

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]