1

Тема: VBS/HTA: Получение данных со страницы на ASP

Имеется страница поиска, написанная на ASP.
Там куча полей для заполнения, требуемых для настройки фильтра поиска.
Я, честно говоря, в ASP полный ноль, но ведь IE посылает некий запрос после заполнения поля и нажатия кнопки "поиск".
У меня задача автоматически сделать запрос на этой странице, получить результат поиска, а уж дальше с ним работать будет не проблема.
Как должен выглядеть этот запрос? На чем его лучше реализовывать - на VBS или на HTA?

2

Re: VBS/HTA: Получение данных со страницы на ASP

Вы путаете некоторые вещи: vbs - язык программирования, hta - приложение, основанное на html, которое может быть написано с использованием теоретически любых, а практически только js или миы. Не имеет также значения, на чем реализована требуемая страница - asp, php или другой язык. Важно знать, какие поля формы заполнить и как отправить данные на сервер. Смотрите исходный код страницы, ищите теги формы и полей формы, создайте XmlHTTPRequest объект, формируйте запрос на сервер скриптом (любой язык программирования) и отправляте запрос на сервер по адресу, который узнаете из исходного кода страницы поиска. Полученный результат - новая html-страница, которую разбираете и выбираете необходимую информацию.



' Строка поиска
text = "AJAX"

' Адрес страницы
url = "http://yandex.ru/yandsearch?text=" & text

' ОБработчик запросов
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")

' Послать синхронный запрос GET
xmlhttp.open "GET", url, false

' Выполнить запрос
xmlhttp.send

' Дождаться и прочитать результат
response = xmlhttp.responseText

' Что-то сделать с результатом
WScript.Echo response

В этом примере я показал самый простой запрос GET, выполняемый синхронно - то есть скрипт приостановится до завершении выполнения запроса и получения результата. Я не показал, как можно отправить дополнительные параметры запроса и как прочитать заголовки отклика. Я не показал примеры обработки изменения состояния запроса, кода возврата запроса. Подробности можно почитать как на википедии http://ru.wikipedia.org/wiki/XMLHttpRequest, http://ru.wikipedia.org/wiki/Ajax, так и на специальной странице http://xmlhttprequest.ru/

( 2 * b ) || ! ( 2 * b )

3

Re: VBS/HTA: Получение данных со страницы на ASP

Не понял, как там работает поисковая система. Но может такой код вам чем-то поможет:


Sub Navigate(Link)
	objIE.Navigate Link
	While objIE.Busy
		WScript.Sleep 100
	Wend
End Sub 
Sub GetAllParam()
For FormIt = 0 to objIE.Document.Forms.Length - 1
	 Set Form = objIE.Document.Forms(FormIt)
	 For Item = 0 to Form.Elements.Length - 1	
	 	' Имя поля и значение
	 	WScript.Echo Form.Elements(Item).Name&" ---> "&Form.Elements(Item).Value
	 Next 
Next 
End Sub 
' ======================================================
Set objIE = CreateObject("InternetExplorer.Application") 
	objIE.Visible = True 'False

Navigate "http://www.sberbank-ast.ru/purchaseList.aspx"
GetAllParam ' Просто просмотр параметров

Set TheForm = objIE.Document.Forms(0)
	TheForm.Elements(4).Value = "0372100037512000004"
	TheForm.Elements(5).Value = "Поставка сервера"
	TheForm.Elements(6).Value = "1 474 855.00"
	TheForm.Elements(7).Value = ""
	TheForm.Elements(9).Value = "08.06.2012"
	TheForm.Elements(10).Value = "08.06.2012"	
	TheForm.Elements(11).Value = "16.06.2012"
	TheForm.Elements(12).Value = "16.06.2012"
	TheForm.Elements(13).Value = "22.06.2012"
	TheForm.Elements(14).Value = "22.06.2012"
	
TheForm.submit()
В основе всего лежит простота.

4 (изменено: pant-79, 2012-06-18 16:43:31)

Re: VBS/HTA: Получение данных со страницы на ASP

2Felix Faria: Что-то запустил, ругается, требует объект Form... надо поковыряться в этом коде.....

Вобщем, выдал мне окно IE с результатами поиска без фильтра (формы не заполнены) и потом кучу мессажей с наборами кракозябр... что-то не то в коде, а что конкретно - пока еще не разобрался.