как сэмулировать запрос формы веб-страницы?

356ft85

вот тут надо скриптом вводить
http://zakupki.gov.ru/Tender/Purchase.aspx
строку в поле "Наименование заказа, предмета контракта"
и потом ответ сохранять в файле.
скриптовый язык - php, но это не суть важно.
как бы это сделать?
Пробовал отсылать post запрос подобный тому который браузер отслыает когда кнопку нажимаешь , но как правильно делать такие вещи, не пойму...

pitrik2

ну для начала ставишь какуюнить штуку для просмотра чо летит
тот же фаербаг например
ну и потом добиваешься того чтобы в твоем скрипте посылалось тоже самое
твою ссылку не смотрел, но обычное дело: сервак тя посылает если не присылаешь ему какиенить кукисы или если не присылаешь какиенить поля в посте
а то бывает и хуже, если какиенить рефереры смотрятся

356ft85

я пока придумал такой алгоритм -
то что файр баг выдал - загнал в файл - оттуда беру как основу запрос, потом запрашиваю текст страницы без параметров - из него выбираю hidden тэги и заменяю значения, взятые из файла на них. + дописываю куки которые выдаёт сервак на запрос страницы без параметров.
Однако, всё равно результат ожидаемый не получается...

356ft85

ну как есть у кого нить еще идеи?
скрипт которым я делаю запрос (в качестве ключевого слова задаётся 'sampleworld').

ppplva

я пока придумал такой алгоритм -
то что файр баг выдал - загнал в файл - оттуда беру как основу запрос, потом запрашиваю текст страницы без параметров - из него выбираю hidden тэги и заменяю значения, взятые из файла на них. + дописываю куки которые выдаёт сервак на запрос страницы без параметров.
Однако, всё равно результат ожидаемый не получается...
Ты знаешь правильный запрос - тот, на который сервер реагирует желаемым образом. Ты пытаешься сгенерировать такой же запрос своей программой, но вместо этого получается что-то другое. Так? В этом проблема?

356ft85

да и вобщем я нашёл ошибку=)
написал всопомгательный скрипт который берет дамп прокси и сравнивает запросы - выдаёт какие параметры запроса отличаются от запроса к запросу - анализировать на порядок проще, к томуже оказалось еще сервер чувствительный к urlencode - требует кодировки тела POST запроса, а вот на куки ему пофиг)

pitrik2

сервер чувствительный к urlencode - требует кодировки тела POST запроса
чот тут непонятка какая-то
urlencode - относится к урлу
тело POST запроса к урлу не отсносится...

Dasar

urlencode - относится к урлу
тело POST запроса к урлу не отсносится...
но параметры же энкодить надо - амперсанды и равно хотя бы заменить и т.д.

pitrik2

но параметры же энкодить надо - амперсанды и равно хотя бы заменить и т.д.
ой
а он что, напрямую в поток пишет?
я php не знаю, но неужели там нету обертки над реквестом которая автоматом у себя перед выводом в поток за всем следит?

Dasar

я php не знаю, но неужели там нету обертки над реквестом которая автоматом у себя перед выводом в поток за всем следит
хз, может нет, может не знает, может надо что-то дополнительно подключать.

hwh2010

а он что, напрямую в поток пишет?я php не знаю, но неужели там нету обертки над реквестом которая автоматом у себя перед выводом в поток за всем следит?
а при чём тут php. это смотря каким методом запрос делается. бывает curl, бывает socket, бывает вообще file_get_contents (яхз, может он уже и POST научился делать)

356ft85

Делаю напрямую выводом в сокет fwrite ($socket, $s);
так что нету никаких обёрток =)
класс для сравнения post запросов, в архиве.
Оставить комментарий
Имя или ник:
Комментарий: