0

我在 Visual Basic 2010 Express 中有一个使用 IHTMLDocument 对象解析网页的项目。这是我用来检索网页的函数:

Private Function GetHTML(ByVal url As String)
    Dim htmldoc As New HTMLDocument()
    Dim ihtml2 As IHTMLDocument2
    Dim ihtml3 As IHTMLDocument3
    Dim iPersistStream As IPersistStreamInit

    iPersistStream = DirectCast(htmldoc, IPersistStreamInit)
    iPersistStream.InitNew()

    ihtml2 = htmldoc.createDocumentFromUrl(url, vbNullString)

    Do Until ihtml2.readyState = "complete"
        'required for htmlresult.readyState to transition from "loading" to "complete"
        System.Windows.Forms.Application.DoEvents()
    Loop
    ihtml3 = DirectCast(ihtml2, IHTMLDocument3)

    Return ihtml3
End Function

我基本上是在用这个函数做这样的事情:

ihtml = GetHTML("www.blah.com?getvar1=x&getvar2=y")
ihtml.getElementsByTagName("A")
ihtml.getElementById("myel")
etc, etc...

我试图弄清楚当我检索 HTML 文档时如何在 URL 字符串之外包含 POST 变量。我的意思是我希望能够做到这样的事情:

ihtml = GetHTML("www.blah.com?getvar1=x&getvar2=y",["postvar1=a","postvar2=b"])

所以我想修改我现有的 GetHTML 函数,以便允许我在可能的情况下包含 post 变量,如果不是,我想知道是否有其他方法可以做到这一点。感谢任何能提供帮助的人。

4

1 回答 1

0

好的,我会使用WebCilentWebRequest但是......如果你致力于这个设计:

您必须导航到页面,找到每个输入字段,设置值,然后在该页面的按钮上调用 InvokeMember。WebBrowser 完全是关于自动化 Web 浏览器,而不是关于以编程方式发出 HTTP 请求。

示例代码: http: //muftisubzero.blogspot.com/2010/12/playing-with-webbrowser-class-cnet.html

于 2011-11-28T21:12:21.737 回答