VB6 使用webbrowser 或 xmlhttp 如何取得http://diamonds.com/Main/SearchResult.aspx?CaratSizeFrom=0&CaratSizeTo=100&shape=round 第10页的源代码?

解决方案 »

  1.   

    直接修改此a标签为的内容,第一页的比如是javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$1'),你改成javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$10'),然后再去点击这个链接如果要一页页的点也可以,不过得精确了,模拟实际操作,一直点到“10”,遇到“”也照点另外再一个就是直接抓包,看看它是跟服务器怎么交互的,如果有个中间的数据文件最好了,这样就可以直接xmlhttp直接取得了。
      

  2.   

    的确有难度,试图通过url直接传值被系统阻止,看来只能通过form提交才能获得合法认证了。
      

  3.   

     返回:
    We're sorry, but an Unexpected Error has occurred. 
    Click here to go back. 
      

  4.   

    WebBrowser1.Document.All("__EVENTTARGET").Value = "ctl00$cphMainContent$gvSearchResult"
    WebBrowser1.Document.All("__EVENTARGUMENT").Value = "Page$10"
    WebBrowser1.Document.Forms("aspnetForm").submit
    返回同样的错误
      

  5.   

    修改哪些项目提交后表示第10页?我没找到page之类的单词。
      

  6.   

    这个函数返回的:
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
      

  7.   

    WebBrowser2.Navigate "http://diamonds.com/Main/SearchResult.aspx?CaratSizeFrom=0&CaratSizeTo=100&shape=round", False
    While WebBrowser2.Busy
    DoEvents
    Wend
    WebBrowser2.Navigate "javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$10')"
    返回同样错误
      

  8.   

    WebBrowser2.Navigate "http://diamonds.com/Main/SearchResult.aspx?CaratSizeFrom=0&CaratSizeTo=100&shape=round", False
    While WebBrowser2.Busy
    DoEvents
    Wend
    WebBrowser2.Navigate "javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$10')"
    返回同样错误
      

  9.   

    出错时因为那个页面上没有 Page$10 这个东西, 所以,先翻到有Page$10的页面,再调用Page$10Private Sub Form_Load()
        WebBrowser1.Navigate2 " http://diamonds.com/Main/SearchResult.aspx?CaratSizeFrom=0&CaratSizeTo=100&shape=round"
    End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Static lStep As Long
        
        If lStep = 2 Then Exit Sub
        
        Dim oWindow As HTMLWindow2
        Set oWindow = pDisp.Document.parentWindow
        
        Select Case lStep
        Case 0
            oWindow.execScript "javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$6')"
        Case 1
            oWindow.execScript "javascript:__doPostBack('ctl00$cphMainContent$gvSearchResult','Page$10')"
        End Select
        
        lStep = lStep + 1
    End Sub
      

  10.   

    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Dim link As Object
        
        Set link = Me.WebBrowser1.Document.getElementsByTagName("A")(89)
        If link.innerText = "..." Or link.innerText = "10" Then
            link.Click
        Else
            MsgBox Me.WebBrowser1.Document.body.innerHTML
        End If
    End Sub
      

  11.   

    Option ExplicitDim clsWeb1 As New clsWebMasterPrivate Sub Form_Load()
        WebBrowser1.Navigate "http://diamonds.com/Main/SearchResult.aspx?CaratSizeFrom=0&CaratSizeTo=100&shape=round"
    End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Static isOk As Boolean
        If isOk Then
            MsgBox WebBrowser1.Document.body.INNERHTML
            Exit Sub
        End If    If clsWeb1.IsTagExist(WebBrowser1, "A", eHREF, "Page$10", , False) Then
            clsWeb1.ClickTag WebBrowser1, "A", eHREF, "Page$10", , False
            isOk = True
        Else
            clsWeb1.ClickTag WebBrowser1, "A", eINNERHTML, "..."
        End If
    End Sub
    需要引用一个dll,下载地址:http://commonprogrames.googlecode.com/files/WebMasterDemo.rar
      

  12.   

    楼上中用到的那个dll不知道有没有使用限制,我的意思是有没有试用期限制或禁止商业发布等。