VB.NET实用教程之抓取网页乱码解决方案
创始人
2024-06-09 14:10:44
0

VB.NET实用教程教你调试VB.Net调用Microsoft.XMLHttp组件抓取网页时,遇到抓取中文字符出现乱码的问题,在这里给大家仔细分析一下,举一个小案例如下。以下为VB.Net抓取网页的函数LobDotCn  注:url_Link为抓取的目标页面 IsGb2312为是否Gb2312字符。

VB.NET实用教程代码:

  1. Public Function LobDotCn(ByVal url_Link As String, ByVal IsGb2312 As Boolean)    
  2. On Error Resume Next  
  3. Dim XmlHttp As Object  
  4. XmlHttp = CreateObject("Microsoft.XMLHttp")  
  5. XmlHttp.Open("POST", url_Link, False)  
  6. XmlHttp.Send()  
  7. Dim WebContent As Object  
  8. Dim Str_WebContent As String  
  9. If IsGb2312 Then  
  10. WebContent = XmlHttp.ResponseBody  
  11. Str_WebContent = System.Text.Encoding.Default.GetString(WebContent)  
  12. Else  
  13. WebContent = XmlHttp.ResponseText  
  14. Str_WebContent = WebContent.ToString  
  15. End If  
  16. XmlHttp = Nothing 
  17. LobDotCn = Str_WebContent 
  18. 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格式数据。

以上就是VB.NET实用教程为你提供的一个完整的解决方法,希望对研究VB.Net抓取网页或者VB.Net实现采集功能的朋友有所帮助。

【编辑推荐】

  1. VB.NET初步知识,初学者必看
  2. 具体介绍四大类VB.NET循环
  3. VB.NET函数宝典手把手教会你
  4. VB.NET动态控件数组三部曲
  5. 全方位分析VB.NET编码规范

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...