Заполнение WEB формы

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Заполнение WEB формы

Сообщение bloodlines »

Доброго времени суток, уважаемые знатоки!
Есть такая задача :
Необходимо перейти на некоторый URL, заполнить форму логина и пароля, нажать на кнопку авторизации, на открывшейся странице скачать файл по ссылке. Все действия должны происходить автоматически без участия пользователя.
На Delphi делал через TWebBrowser. Как сделать на Lazarus не знаю. Программа будет работать только под Windows (кроссплатформенность не нужна).
Умею через COM OLE вызывать Internet Explorer и встраивать его в форму - но как обрабатывать элементы WEB формы в коде не знаю.
Подскажите пожалуйста как на Lazarus можно решить такую задачу? (может решения не существует?)
Timid
постоялец
Сообщения: 290
Зарегистрирован: 21.11.2007 20:33:15

Сообщение Timid »

richview?
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Сообщение bloodlines »

Timid писал(а):richview?

А по подробнее можно?
Timid
постоялец
Сообщения: 290
Зарегистрирован: 21.11.2007 20:33:15

Сообщение Timid »

Смотрим http://wiki.lazarus.freepascal.org/RichView вики по компоненту.

Упрощенно - это браузер, целиком реализованный на pascal/lazarus, пусть и простой. Но для Вас вроде больше и не нужно.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Если веб-форма не создается динамически в браузере с помощью JavaScript-ов, то и браузер здесь нафиг не нужен - достаточно любого http-клиента, умеющего отправлять POST-запрос. Что именно отправляет форма можно увидеть, поставив в Firefox дополнение LiveHTTPHeaders.

Добавлено спустя 1 минуту 31 секунду:
RichView - ниразу не браузер.
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Класс HttpSend из библиотеки Synapse - то что доктор прописал. Многое об этой библе (а в частности пример подобной задачи) можно найти тут.
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Сообщение bloodlines »

RichView по моему никак к моей задаче не относится т.к. открывается внешний URL в интернете а не локальный файл.
LiveHTTPHeaders - ничего не показывает - пусто, хотя для других сайтов вижу данные (интересно почему?).
URL сайта http://www.kvartplata.ru/scdp/page?als=2890308
В WEB технологиях я плохо разбираюсь...
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 564
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

bloodlines писал(а):LiveHTTPHeaders - ничего не показывает - пусто, хотя для других сайтов вижу данные (интересно почему?).
URL сайта http://www.kvartplata.ru/scdp/page?als=2890308

На сайте ошибка на ошибке. Может быть по этому...
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Сообщение bloodlines »

WAYFARER писал(а):На сайте ошибка на ошибке. Может быть по этому...

Сайт не мой и к его написанию никакого отношения не имею и не могу на него повлиять. К заказчику моей программы сайт и организация стоящая за ним тоже прямого отношения не имеет.
Но очень нужен софт (по инфе из первого поста). Готов выслушать и попробовать любые идеи и предложения! Или задача на Lazarus не решаема?
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

http://www.webdelphi.ru/2011/07/biblioteka-synapse-rabota-s-modulem-httpsend-pas/
[url]http://www.google.ru/search?q=synapse+отправка+формы+site%3Afreepascal.ru&ie=utf-8[/url]

bloodlines писал(а):LiveHTTPHeaders - ничего не показывает - пусто

Код: Выделить всё

http://www.kvartplata.ru/scdp/page?serviceid=2890308&sc=login&prfx_obj=2890308&origin=login&event=form(login)

POST /scdp/page?serviceid=2890308&sc=login&prfx_obj=2890308&origin=login&event=form(login) HTTP/1.1
Host: www.kvartplata.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,be;q=0.8,uk;q=0.6,en-us;q=0.4,en;q=0.2
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.kvartplata.ru/scdp/page?als=2890308
Cookie: JSESSIONID=f3pm36qqn3.ajp8010flower
Content-Type: application/x-www-form-urlencoded
Content-Length: 45
uname=zxczxc&upass=123&Submit=%C2%EE%E9%F2%E8
Ответ сервера:

Код: Выделить всё

HTTP/1.1 200 OK
Date: Thu, 19 Jan 2012 10:11:14 GMT
Server: Apache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Last-Modified: Thu, 19 Jan 2012 09:11:14 GMT
Content-Encoding: gzip
Content-Length: 2106
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=windows-1251
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Сообщение bloodlines »

OK. С synapse работал и работаю (писал демон отправки почты). Попробую разобраться с веб формами... По результатам отпишусь.
Ответить