Включить переменные записи в вызов createDocumentFromUrl в.NET
У меня есть проект в 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...
Я пытаюсь выяснить, как я могу включить переменные POST в дополнение к строке URL, когда я получаю документ HTML. Я имею в виду, что я хотел бы иметь возможность что-то вроде этого:
ihtml = GetHTML("www.blah.com?getvar1=x&getvar2=y",["postvar1=a","postvar2=b"])
Поэтому я хотел бы изменить мою существующую функцию GetHTML, чтобы позволить мне включать переменные записи, если это возможно, и если нет, я хотел бы знать, возможно, есть ли другой способ сделать это. Спасибо всем, кто может помочь.
1 ответ
Хорошо, я бы использовал WebCilent или WebRequest, но... если вы привержены этому дизайну:
Вы должны перейти на страницу, найти каждое поле ввода, установить значение, а затем вызвать InvokeMember на кнопке для этой страницы. WebBrowser - это автоматизация веб-браузера, а не выполнение программных HTTP-запросов.
Пример кода: http://muftisubzero.blogspot.com/2010/12/playing-with-webbrowser-class-cnet.html