Как вы извлекаете данные с веб-сайта поставщика в VBScript? - PullRequest
0 голосов
/ 14 января 2010

Я запрограммировал HTA пост-образа, который запускается после загрузки образа XP на компьютер. HTA собирает информацию от пользователя (то есть имя основного пользователя, отдел и т. Д.) И обновляет реестр в соответствии с пользовательским ключом. Руководство спросило, могу ли я получить информацию о гарантии компьютера (в частности, дату окончания гарантии) с веб-сайта поставщика (в данном случае Lenovo) и обновить реестр этой информацией. Lenovo разрешает анонимный поиск, используя тип компьютера и серийный номер, и возвращает страницу с информацией о гарантии. Есть ли способ использовать vbscript (или, возможно, javascript?) Для анализа возвращаемой страницы на предмет данных, которые я ищу?

Спасибо заранее, Гилл

Ответы [ 2 ]

2 голосов
/ 15 января 2010

Использование синтаксического анализатора HTML, вероятно, было бы более надежным способом сделать это, но с помощью VBScript просто скрипт Internet Explorer через OLE Automation.

Dim ie, frm

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www-307.ibm.com/pc/support/site.wss/" & _
    "document.do?lndocid=LOOK-WARNTY#sw"
Do Until ie.ReadyState = 4 '' READYSTATE_COMPLETE
    WScript.Sleep 100
Loop

Set frm = ie.Document.Forms.warrantyLookup
frm.type.Value = "2644"
frm.serial.Value = "23AB123"
frm.Submit

Do Until ie.Document.ReadyState = "complete"
    WScript.Sleep 100
Loop

'' Locate the information you want to scrape from the
'' ie.Document DOM at this point

ie.Quit
0 голосов
/ 15 января 2010

Вы можете довольно легко очистить возвращаемую страницу, все, что действительно требуется, - это анализатор HTML, а затем знание того, где нужная информация находится на возвращаемой странице. Я не знаю ни одного парсера VBScript HTML, но я уверен, что они существуют. Однако, если вы не можете найти его, вы можете вызвать внешнюю программу из локально выполняемого кода, чтобы вы могли написать утилиту очистки страниц на любом количестве языков (или использовать какую-то утилиту grep), и это может сделать то, что ищем.

...