Включить переменные записи в вызов createDocumentFromUrl в .NET - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть проект в 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 Ответ

0 голосов
/ 29 ноября 2011

Хорошо, я бы использовал WebCilent или WebRequest , но ... если вы привержены этому дизайну:

Вы должны перейти на страницу, найти каждое поле ввода, установить значение, а затем вызвать InvokeMember на кнопке для этой страницы. WebBrowser - это автоматизация веб-браузера, а не программные HTTP-запросы.

Пример кода: http://muftisubzero.blogspot.com/2010/12/playing-with-webbrowser-class-cnet.html

...