就象下面这个网页里面的“倒计时”和“最后出价:”,如何获得这样的变化的内容呢?
http://pai.500wan.com/auction/auction.php?action=view&productid=773

解决方案 »

  1.   

    网站打不开
    参考:
    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
      

  2.   

    http://pai.500wan.com/auction/auction.php?action=view&productid=773
    这个网页我能打开啊,我先看看你的回答再说。
      

  3.   

    WebBrowser1是个什么变量啊?恕我从未搞过网页内容编程!
    你的程序好像只能读取国定内容吧 还没有实验。不知道按照你的这个程序写,程序能不能运行啊。
      

  4.   

    Ctrl+T里面找Microsoft Internet Control...
      

  5.   

    哥哥 你给的程序我试了,也不能运行。
    立即窗口显示如下:?ss
    404 Not Found
    /zhcw/html/3d/list_1.html was not found on this server. 
    请再帮帮忙吧 谢谢了。最好是能直接针对我给出的网址,我的编程水平真的有限!
      

  6.   

    呵呵 那就指点一下吧 我要获取的是“变化”的内容,网页中不变的内容我是能读取的
    我用的是这样的方法:CreateObject("Msxml2.XMLHTTP")..................
      

  7.   

    最好用winsock使用get方法……
    支持楼上……
      

  8.   

    不知你是想给自己打广告,还是真的问问题,这么简单的都不会??
    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
      

  9.   

    概括起来有这么几个方法:
    1.dhtml操作直接得到对象,需要分析dom结构。
    2.用document.body.innerhtml得到所有页面代码,然后用纯字符串函数截取得到需要的值。
    3.用document.body.innerhtml得到所有页面代码,然后用正则表达式得到需要的值。
    4.抓包分析其与服务器通讯的几个关键文件,直接发送查询。有点难度。建议用以上三个方案之一。代码参考楼上几位,基本没看,应该不外乎上面概括的几种方法。
      

  10.   


    大哥你的方法确实好使,但是我按照你的程序添加部件,和控件后,程序运行几次都正常,但是中午吃完饭回来后,就提示.Navigate2 找不到方法和数据成员,这是为什么呢?