Генератор парсеров BrowserExt

submitform

Отправляет данные формы, загружает ответ и выполняет операторы и функции заданные в теле submitform.

[@multi] submitform(form, [encoding = 'UTF-8', [headers = array()]]) {
    тело submitform
}
    

Параметры:

form Словарь с параметрами формы, полученный с помощью функции getfrom.
encoding Оригинальная кодировка страницы на сервере. Требуется для правильной передачи параметров при post запросе.
headers Заголовки, передаваемые при загрузке страницы. Массив строк. Через этот параметр можно, например, передать cookie.

Тело submitform выполняется также, как и у loadpage, в цикле, если есть ссылки в очереди загрузки. Ссылки могут быть добавлены в очередь загрузки функцией continue

Внутри тела доступен словарь pageparams c параметрами загруженной страницы:

pageparams['page'] Строка, содержащая html-код страницы
pageparams['url'] url загруженной страницы. Если страница загружалась методом get и были указаны параметры через params, то url содержит также и параметры
pageparams['effectiveurl'] Окончательный url загруженной страницы. Окончательный url отличается от заданного url если, например, был redirect страницы. При запуске в Редакторе скрипта данный параметр не поддерживается.
pageparams['domain'] Домен загруженной страницы. Например для страницы http://site.com/123.html домен будет http://site.com/
pageparams['encoding'] Оригинальная кодировка страницы на сервере. Страница, загруженная через loadpage, всегда перекодируется в UTF-8
pageparams['headers'] Строка заголовков, которые были переданы при загрузке страницы. При запуске в Редакторе скрипта данный параметр не поддерживается.

Тело submitform, как и у loadpage обладает локальной областью видимости, поэтому переменные, объявленные внутри loadpage, видны только внутри данного тела и не видны как за его пределами, так и в теле вложенного loadpage или submitform.

Все функции, которые допустимы только внутри loadpage, работают и внутри submitform.

Пример 1.

Есть возможность передать параметр в тело submitform, для этого необходимо после списка параметров указать значение или переменную в квадратных скобках. Значение этого параметра будет доступно в теле submitform как значение переменной passparams. Также параметр в очередной submitform можно передать при помощи второго параметра функции continue. Пример смотрите в описании функции loadpage.