![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Post + delphi [D7, WinXP]
Std © (2006-05-26 22:18:00)Доброго времени.
такая ситуация:
есть адрес http://www.site.com/page
на странице находятся поля для заполнения, по нажатию кнопки методом POST передается инфа. Имена параметров и их значения известны. одно из значений берется из кукисов, которые создаются при входе на страницу.
Так вот необходимо что бы все делалося в проге а не через инет на сайт заходить.
На форме я размещаю поля для ввода(такие же каки на сайте) и при нажатии кнопки на форме должно произойти тоже что и происходит при нажатии кнопки на странице.
Подскаите как делать
Delphi5.01 (2006-05-28 03:00:00) [1]Я вас полностью понимаю :-) У меня похожая задача, думаю немного масштабная но похожа на вашу.
Я на форуме часто исчезаю на долгое время, если что пишите на administrator@gesoft.org или ICQ 277767 с полным описанием проблемы и задания, постараюсь чем-то помочь (готовыми решениями)
Std (2006-05-28 02:17:00) [2]та это не спам собсно. просто нада заполнять форму не через веб, а через прогу, так как можна зделать более функциональное заполение.
Delphi5.01 (2006-05-28 02:13:00) [3]Ну давайте я начну по порядку вас объяснять :-)
Во первых ошибка у вас возникает по той причине что вы пытаетесь считать куку еще тогда когда она не существует Работа через OLE среду не совсем похожа на работу с обыкновенным компонентом. Мои личные тестирования показали что перед тем как считывать куку надо удостовериться что в компоненте TWebBrowser-е была открыта хоть одна страничка. Делаеться это вот так
if WebBrowser1.Document <> nil then begin
myCookie := (WebBrowser1.Document as IhtmlDocument2).cookie;
end;
если это помогло то супер, если нет то выкладывайте код и более детальное описание когда при каких обстоятельствах возникает баг.
Теперь по вопросу номер 2. Как определить вот эти циферки? Это довольно сложный вопрос, ибо подразумевает анализ текста. Для этой цели есть уже много готовых движков, все платные и очень дорогие, но как говориться даже учитывая высокую цену их способности ограниченны. Такой движок надо обучать определять каждый новый шрифт. И не только, имеет значения фон, жирны или курсивный, допускаться ли разворот символов вокруг оси и т.д.
Прошу прошения, не сочтите за оскорбление, но данный вопрос я думаю вам не по зубам. Такими вопросами занимаются профи, с большим стажем Я часто такие моменты обхожу проше, я вывожу картинку на экран и прошу пользователя заполнить.
Думаю мой ответ вам помог
McSimm (2006-05-28 01:52:00) [4]
> в этом самом кукисе храняца цыферки которые отображаются
> на картинке при заполенении форм :)
И циферки эти сделаны специально, чтобы защитить сайт от вас.
(Хоть сделано и коряво, конечно)
Спам, взлом и прочие неприличные вещи обсуждать здесь нерекомендуется очень настоятельно.
Std (2006-05-28 01:32:00) [5]я тут подумал, если передается POST то мне необходимо УЖЕ знать то что было в кукисах, и, как я думаю, узнать что в них не полуится потому что мы как будто ы уже были на этой странице... тогда возникает следующий вопрос, как узнать эти самые гребаные цыферки и всунуть их в POST
З.Ы. вобщем я уже окончательно запутался...
Std (2006-05-28 01:29:00) [6]Извиняюсь. но вылетело с головы и не написал, на этом месте:
myCookie := (WebBrowser1.Document as IhtmlDocument2).cookie;
во время выполнения вылетает ошибка и запускаеца дебагер, в котором я ввиде асемблера непонимаю ничерта :)
Delphi5.01 (2006-05-27 16:44:00) [7]И снво ваш ответ доказывает что вы не внимательно прочитали ветку
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1147572005&n=4
там в самом верху написано :-)
myCookie := (WebBrowser1.Document as IhtmlDocument2).cookie;
п.с. Не легче было поискать и найти ответ за 5 минут чем ждать несколько часов пока я сам отвечу? ;-)
Std (2006-05-27 13:28:00) [8]чтото я никак не разберусь как вытянуть из кукисов значения :(
вот зделал я WebBrowser1.Navigate(' http://www.seite.com/page.php') в кукисах записало какое то значение например code=5445 а вот как вытянуть это значения немогу понять :(
Delphi5.01 (2006-05-27 13:14:00) [9]Вот кажеться, но они почемуто сменили диз, для навигации воспользуйтесь SiteMap-ом
http://www.bsalsa.com/
Delphi5.01 (2006-05-27 01:55:00) [10]Ок, получается ты хочешь решить похожую проблему как у меня. Я писал и пишу на данный момент бот для заполнения форм.
Вот тебе ссылки на темы где велось обсуждение:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1147572005&n=4
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=6826#1
Как отрыть урл, есть на одном на этом сайте:
вот блин забыл :-( Там типа было как работать с IE из дельфи, весь сайт этому был посвящен, у меня фафориты потерялись, два дня назад переустанавливал систему. Но ты поищи гуглом, сто пудово на него выйдешь, если кто здесь не напомнит имя сайта.
Все кто работали с IE знают этот сайт :-)
там пример отрывает урл, и заполняет имя и пароль, лично проверял работает :-)
Std (2006-05-27 01:49:00) [11]в этом самом кукисе храняца цыферки которые отображаются на картинке при заполенении форм :)
Std (2006-05-27 01:47:00) [12]как передать пост уже разобрался, спасибо. а вот как войти на страницу, получить кукис и паременной присвоить значение кукиса этого немогу разобрать...
Delphi5.01 (2006-05-27 01:12:00) [13]Хотя как я вижу ты и не искал ;-) Все равно вот выложу готовые ссылки:
http://www.delphifaq.com/faq/delphi/network/f249.shtml
А здесь косвенная помощь
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=42313
http://www.swissdelphicenter.ch/torry/printcode.php?id=2242
Подсказка, если переменные передаются методом POST то они помещаются в header :-)
Удачи
п.с. Хотя я помню что говорили что даже у Delphi в Sample-ач есть готовый пример по данному вопросу. Да и по интернету я повстречал кучу решений когда искал как сменить куку в браузера программно
Std (2006-05-27 00:56:00) [14]а можно ссылку, а то немогу найти :(
Delphi5.01 (2006-05-27 00:47:00) [15]Сори но если воспользоваться поиском, то неделю назад я и еще несколько пользователей решали данную проблему. Там было достаточно информации и линков что бы решить как вашу так еще и 10 таких проблем.
Удачи
п.с. Если не найдете то скину ссылку