不知你是想给自己打广告,还是真的问问题,这么简单的都不会?? vb6.0的代码 Option Explicit Dim 重置时间对象 As ObjectPrivate Sub Form_Load() WebBrowser1.Navigate2 "http://pai.500wan.com/auction/auction.php?action=view&productid=773" Dim 次数 As Long Do While 次数 < 3 If WebBrowser1.ReadyState = 4 Then 次数 = 次数 + 1 End If
DoEvents Loop MsgBox "载入完毕" Dim WebDoc对象 As Object Dim 元素对象集合 As Object ' 获取文档对象 Set WebDoc对象 = WebBrowser1.Document ' 获取所有元素对象的集合 Set 元素对象集合 = WebDoc对象.body.All ' 获取div对象的集合 Set WebDoc对象 = 元素对象集合.tags("div") Dim i As Object ' 枚举div对象的集合,通过“className”来获得重置时间对象 For Each i In WebDoc对象 If i.className = "time nomal" Then Set 重置时间对象 = i '获得后跳出循环 Exit For End If Next' 获取重置时间对象元素的文本 Label1.Caption = 重置时间对象.innerText '设置时钟周期,在周期事件里更新他的文本 ' 如果不能更新获取的,重复上面的代码 Timer1.Interval = 100 End Sub Private Sub Timer1_Timer() '’下面的屏蔽的代码块在不能获取更新文本时使用 ' Dim WebDoc对象 As Object ' ' Dim 元素对象集合 As Object '' 获取文档对象 ' Set WebDoc对象 = WebBrowser1.Document '' 获取所有元素对象的集合 ' Set 元素对象集合 = WebDoc对象.body.All ' ' 获取div对象的集合 ' Set WebDoc对象 = 元素对象集合.tags("div") ' Dim i As Object ' ' 枚举div对象的集合,通过“className”来获得重置时间对象 'For Each i In WebDoc对象 ' If i.className = "time nomal" Then ' Set 重置时间对象 = i ' '获得后跳出循环 ' Exit For ' End If 'Next ' 获取重置时间对象元素的文本 Label1.Caption = 重置时间对象.innerText End Subvb.net代码 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate("http://pai.500wan.com/auction/auction.php?action=view&productid=773") WebBrowser1.Refresh() Dim N As Long Do While N < 3 If WebBrowser1.ReadyState = 4 Then N = N + 1 End If Application.DoEvents() Loop MsgBox("载入完毕") Dim aa As HtmlDocument = WebBrowser1.Document() 'aa = New System.Windows.Forms.HtmlElementCollection Do While aa Is Nothing Threading.Thread.Sleep(10) Application.DoEvents() Loop 'Dim bb As HtmlElement For Each bb As HtmlElement In aa.All() If bb.TagName() = "DIV" Then Console.WriteLine("TagName: " & bb.TagName()) Console.WriteLine("Name: " & bb.Name()) Console.WriteLine("Style: " & bb.Style()) Console.WriteLine("元素属性: " & bb.GetAttribute("className")) Console.WriteLine("相关数据: " & bb.InnerText()) If bb.GetAttribute("className") = "time nomal" Then For Each NN As HtmlElement In bb.All() Console.WriteLine("=================这是第二季===========") Console.WriteLine(" TagName: " & NN.TagName()) Console.WriteLine(" Name: " & NN.Name()) Console.WriteLine(" Style: " & NN.Style()) Console.WriteLine(" 元素属性: " & NN.GetAttribute("className")) Console.WriteLine(" 相关数据: " & NN.InnerText()) Console.WriteLine("=================这是第二季===========") Next End If End If Next End Sub
参考:
Private Sub Command1_Click()
ss = WebBrowser1.Document.body.innerText '得到所有文字
aa = "附加玩法共" '找出要分离的文字前面有标志性的文字
bb = InStr(1, ss, aa) '确定位置
cc = Mid(ss, bb + Len(aa), 12) '取出“附加玩法共”后面的东西
dd = InStr(1, cc, " 页 /") '确定“ 页 /”位置
ee = Mid(cc, 1, dd) '取出“ 页 /”前面的东西
ff = Mid(cc, dd + 4, Len(cc)) '取出“ 页 /”后面的东西
Me.Caption = ee & " " & ff '显示在窗口的标题栏
End SubPrivate Sub Form_Load()
Label1.Caption = ""
Label1.AutoSize = True '自动调整大小
WebBrowser1.Width = 0 '为了不让其显示出来,设置宽度为0
WebBrowser1.Height = 0 ''为了不让其显示出来,设置高度为0
WebBrowser1.Navigate "http://kaijiang.zhcw.com/zhcw/html/3d/list_1.html"
Timer1.Interval = 100 '每秒更新一次
Timer1.Enabled = True '启动定时器
End Sub
这个网页我能打开啊,我先看看你的回答再说。
你的程序好像只能读取国定内容吧 还没有实验。不知道按照你的这个程序写,程序能不能运行啊。
立即窗口显示如下:?ss
404 Not Found
/zhcw/html/3d/list_1.html was not found on this server.
请再帮帮忙吧 谢谢了。最好是能直接针对我给出的网址,我的编程水平真的有限!
我用的是这样的方法:CreateObject("Msxml2.XMLHTTP")..................
支持楼上……
vb6.0的代码
Option Explicit
Dim 重置时间对象 As ObjectPrivate Sub Form_Load()
WebBrowser1.Navigate2 "http://pai.500wan.com/auction/auction.php?action=view&productid=773" Dim 次数 As Long Do While 次数 < 3 If WebBrowser1.ReadyState = 4 Then
次数 = 次数 + 1
End If
DoEvents
Loop MsgBox "载入完毕" Dim WebDoc对象 As Object Dim 元素对象集合 As Object
' 获取文档对象
Set WebDoc对象 = WebBrowser1.Document
' 获取所有元素对象的集合
Set 元素对象集合 = WebDoc对象.body.All
' 获取div对象的集合
Set WebDoc对象 = 元素对象集合.tags("div")
Dim i As Object
' 枚举div对象的集合,通过“className”来获得重置时间对象
For Each i In WebDoc对象
If i.className = "time nomal" Then
Set 重置时间对象 = i
'获得后跳出循环
Exit For
End If
Next' 获取重置时间对象元素的文本
Label1.Caption = 重置时间对象.innerText
'设置时钟周期,在周期事件里更新他的文本
' 如果不能更新获取的,重复上面的代码
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
'’下面的屏蔽的代码块在不能获取更新文本时使用
' Dim WebDoc对象 As Object
'
' Dim 元素对象集合 As Object
'' 获取文档对象
' Set WebDoc对象 = WebBrowser1.Document
'' 获取所有元素对象的集合
' Set 元素对象集合 = WebDoc对象.body.All
' ' 获取div对象的集合
' Set WebDoc对象 = 元素对象集合.tags("div")
' Dim i As Object
' ' 枚举div对象的集合,通过“className”来获得重置时间对象
'For Each i In WebDoc对象
' If i.className = "time nomal" Then
' Set 重置时间对象 = i
' '获得后跳出循环
' Exit For
' End If
'Next
' 获取重置时间对象元素的文本
Label1.Caption = 重置时间对象.innerText
End Subvb.net代码 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate("http://pai.500wan.com/auction/auction.php?action=view&productid=773")
WebBrowser1.Refresh()
Dim N As Long Do While N < 3 If WebBrowser1.ReadyState = 4 Then
N = N + 1
End If Application.DoEvents()
Loop MsgBox("载入完毕")
Dim aa As HtmlDocument = WebBrowser1.Document()
'aa = New System.Windows.Forms.HtmlElementCollection Do While aa Is Nothing
Threading.Thread.Sleep(10)
Application.DoEvents()
Loop
'Dim bb As HtmlElement For Each bb As HtmlElement In aa.All()
If bb.TagName() = "DIV" Then Console.WriteLine("TagName: " & bb.TagName())
Console.WriteLine("Name: " & bb.Name())
Console.WriteLine("Style: " & bb.Style())
Console.WriteLine("元素属性: " & bb.GetAttribute("className"))
Console.WriteLine("相关数据: " & bb.InnerText())
If bb.GetAttribute("className") = "time nomal" Then For Each NN As HtmlElement In bb.All()
Console.WriteLine("=================这是第二季===========") Console.WriteLine(" TagName: " & NN.TagName())
Console.WriteLine(" Name: " & NN.Name())
Console.WriteLine(" Style: " & NN.Style())
Console.WriteLine(" 元素属性: " & NN.GetAttribute("className"))
Console.WriteLine(" 相关数据: " & NN.InnerText())
Console.WriteLine("=================这是第二季===========") Next
End If End If
Next End Sub
1.dhtml操作直接得到对象,需要分析dom结构。
2.用document.body.innerhtml得到所有页面代码,然后用纯字符串函数截取得到需要的值。
3.用document.body.innerhtml得到所有页面代码,然后用正则表达式得到需要的值。
4.抓包分析其与服务器通讯的几个关键文件,直接发送查询。有点难度。建议用以上三个方案之一。代码参考楼上几位,基本没看,应该不外乎上面概括的几种方法。
大哥你的方法确实好使,但是我按照你的程序添加部件,和控件后,程序运行几次都正常,但是中午吃完饭回来后,就提示.Navigate2 找不到方法和数据成员,这是为什么呢?