Vb自动读取本地HTML,VB读取网页内容 方法汇总 - mystic的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

工作需要!有个网页有很多的内容,要读取! 首先网页上有很多标题,每个标题对应着相应的网页,要把这个相应的网页内容读出来,怎么做?不知说清楚没!举个例子吧! 比如xxx.xxx.xxx.xx这是一个网页,这个网页里只显示标题,如: 1,xxxxxxx 2,xxxxx 3xxxx 4xxxx 有很多页,而每个标题又对应相应的网页,这个网页里的内容要把它读出来。要怎么做呢?谢谢!

问题补充:非常感谢你的回答!可以获取内容,但现在又有新的问题,获取的是整个网页的内容,我只要里面

--

之间的内容,要怎么弄呢?谢谢!

ik.qb.data.add('page','fromWap','0');

最佳答案

这里有两中方法,个人觉得第一种比较快,而且第二种字体总显示乱码。 1、利用inet控件 放一个Internet Transfer Control,一个按纽和两个文本框在窗体上 text1用来输入网址,text2用来输入暂存的文件名如c:\temp.htm 然后输入以下代码 Private Sub Command1_Click() Dim B() As Byte '取消所有操作 Inet1.Cancel '设定协议为HTTP Inet1.Protocol = icHTTP '设定URL属性 Inet1.URL = Text1 '将读取的HTML数据放进一个byte array B() = Inet1.OpenURL(, icByteArray) '建立一个暂存文件来存放取回来的html文件 Open Text2 For Binary Access Write As #1 Put #1, , B() Close #1 MsgBox "ok" End Sub 2、利用webbrower控件 和上边放一样的控件,不过把inet改成webbrower控件(引用的时候选internet controls就可以了),另外再加一个timer控件 然后加入以下代码 Private Sub Command1_Click() WebBrowser1.Navigate Text1 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Dim Doc, ObjHtml As Object Dim StrHtml As String Dim B() As Byte If Not WebBrowser1.Busy Then Set Doc = WebBrowser1.Document Set bjHtml = Doc.body.createtextrange() If Not IsNull(ObjHtml) Then B() = ObjHtml.htmltext Open "c:\temp.htm" For Binary Access Write As #1 Put #1, , B() Close #1 End If Timer1.Enabled = False MsgBox "ok" End If End Sub 朋友你好,你现在会读HTML了,但是现在要读取指定标签里的内容,比如

中的,你可以这样: 放一个WebBrowser(引用部件的Microsoft Internet Controls) 然后复制下面的代码: Private Sub Form_Load() WebBrowser1.Navigate2 "那个网页的地址/文件地址" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim doc As Object, i Set doc = WebBrowser1.Document For Each i In doc.getelementsbytagname("p") Text1.Text = Text1.Text & " " & i.innertext '得到所有p标签元素;然后将内容(非HTML,这样过滤H5标签)加入文本框 Next End Sub '祝楼主你成功喔!

VB.NET:读取网页的方法

网页抓取及下载 2008-10-31 01:35:21 阅读42 评论0字号:大中小

用 HttpWebResponse 相关类 GET 和 POST 信息

一、用GET方式读取网页源代码:

Dim httpReq As System.Net.HttpWebRequest     'HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

Dim httpResp As System.Net.HttpWebResponse

Dim url as String=“ http://www.Tuenhai.com  'tuenhai的小站

Dim httpURL As New System.Uri(url)

httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)

httpReq.Method = "GET"

httpResp = CType(httpReq.GetResponse(), HttpWebResponse)

Dim reader As StreamReader = _

New StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))     ' 如是中文,要设置编码格式为 "GB 2312" 。

Dim respHTML As String = reader.ReadToEnd() 'respHTML 就是网页源代码

httpResp.Close()

二、向服务器 POST 信息:

Dim httpUrl2 As New System.Uri(" http://www.Tuenhai.com?"& "name=1&pass= 6" ) ' "&" 号后面是' 注册信息,改成你自己的

Dim req As HttpWebRequest

req = CType(WebRequest.Create(httpUrl2) , HttpWebRequest)

req.Method = "POST"

req.ContentType = "application/x-www-form-urlencoded"

Dim bytesData() As Byte = System.Text.Encoding.ASCII.GetBytes("name=1&pass= 6")

req.ContentLength = bytesData.Length

Dim postStream As Stream = req.GetRequestStream()

postStream.Write(bytesData, 0 , bytesData.Length) ' 以上为向网络服务器 POST 信息

Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)

Dim reader As StreamReader = _

New StreamReader(res.GetResponseStream , System.Text.Encoding.GetEncoding("GB2312"))

Dim respHTML As String = reader.ReadToEnd() 'respHTML 为 POST 后网络服务器返回的信息

MsgBox(respHTML) ' 可用 MsgBox 查看返回的信息

res.Close()

三、用正则表达式从网页源代码中提取网址

得到网页源代后,我们可以对源代码进行处理,比如提取其中的链接, Email 地址,图片地址, Flash 等等,这在论坛自动发贴软件工具中很有用。

Dim r As System.Text.RegularExpressions.Regex

Dim m As System.Text.RegularExpressions.MatchCollection

Dim respHtml As String =" http://www.NETsh.Net/subdomains/f_s_o.php?leibie=shangmao "' 以这个地址举例

strRegex ="http://([\w]+\.)+[\w]+(/[\w.?]+)+leibie[=]{1}[\w]+" ' 用这个正则表达式可以提取上面地址。通用 ' 的提取链接正则表达式为 "http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? "。

r = New System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase)

m = r.Matches(respHTML)

Dim i As Integer

For i = 0 To m.Count - 1

MsgBox(m(i).Value)

Next i

vb读取网页源码

━━━━━━━━━━━━━━━━━━━━━━━━━━

Private Sub Command1_Click()

Dim Inet As Object

Dim s As String

Set Inet = CreateObject("InetCtls.Inet")

Inet.RequestTimeOut = 20

Inet.Url = "http://www.google.com.tw"

s = Inet.OpenURL

MsgBox s

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值