我在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变量(如果可能的话),如果没有,我想知道是否有其他方法可以做到这一点。感谢任何可以提供帮助的人。
答案 0 :(得分:0)
好的,我会使用WebCilent或WebRequest但是......如果你致力于这个设计:
您必须导航到该页面,找到每个输入字段,设置该值,然后在该页面的按钮上调用InvokeMember。 WebBrowser就是自动化Web浏览器,而不是以编程方式发出HTTP请求。
示例代码: http://muftisubzero.blogspot.com/2010/12/playing-with-webbrowser-class-cnet.html