Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi&Браузер 
:(
    Опции темы
Mach3
Дата 26.11.2005, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 26.11.2005

Репутация: -1
Всего: 2



Привет..
Мне необходимо написать программу, которая на "таком-то сайте" заполнит "такое-то" и "такое-то" поле и отправит запрос по указанной ссылке..
Подскажите, пожалуйста, что нужно почитать для разяснения моего вопроса..
И хотелось бы увидеть хотя бы кусочек кода с некоторыми коментариями..
smile
Буду очень признателен..

М
 
Поиск...


Это сообщение отредактировал(а) Girder - 26.11.2005, 13:30
--------------------
Век живи - век учись...
PM MAIL ICQ   Вверх
Snowy
Дата 26.11.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Для начала нужно взять html страничку с сервера.
Посмотреть, какие поля там нужно заполнить.
Определить все переменные, соответствующие полям.
Взять адрес из формы, взять метод (POST или GET).
А потом просто сформировать соответствующий POST или GET запрос,
с заполненными переменными. И отправить все это через TIdHTTP.POST или TIdHTTP.POST

Если разбирать страницу вручную, а потом просто в программе собрать код, для отправки - это проще.
Если ты хочешь, чтобы программа сама разбирала страницу и находила все параметры, то тут придется сильно повозиться - от суток, до 3 месяцев, в зависимости от квалификации и сложности кода страницы.
Забираешь страницу через IdHTTP.POST, парсишь ее, находя все поля, строишь запрос динамически.
Но проще проглядеть код странички глазками и вручную собрать нужный запрос, а в программе только данные подставлять.
PM MAIL   Вверх
Snowy
Дата 26.11.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



К примеру. Страничка www.ya.ru (как простой пример).
Ищем кусок в коде страницы, который есть ворма для заполнения. Нашли:
Код

<form name="web" method="get" action="http://www.yandex.ru/yandsearch">
<input type="hidden" name="rpt" value="rad">

<tr>
<td><a href="http://www.yandex.ru/"><img src="http://img.yandex.ru/i/logo76x44.gif" alt="Яндекс" /></a></td>
<td id="text"><input type="search" name="text" size="50" value="" /></td>
<td><input type="submit" value="Найти!" /></td>
</tr>
<tr>
<td colspan="3" class="pdg"><a class="mail" href="http://mail.yandex.ru"><span>Почта</span><span class="at"> @</span></a></td>
</tr>
</form>

Видим 3 поля:
скрытое rpt со значением = 'rad'
текстовое text - поле для ввода.
кнопка submit - нас не интересует.
Значит в запросе мы должны отправить 2 переменные: rpt и text.
rpt скрытое, поэтому отправляем, как есть.
text - поле которое мы хотим заполнить.

Далее. Куда и как слать:
Код

<form name="web" method="get" action="http://www.yandex.ru/yandsearch">

Вот здесь все написано.
Метод - GET.
Куда - http://www.yandex.ru/yandsearch
Соответственно запрос получается таким:
http://www.yandex.ru/yandsearch?rpt=rad&text=%s
где вместо %s мы подставляем текст, который хотим отправить серверу, как значение поля текст.
Пишем код:
Код

function GetYaRu(txt: string): string;
const
  qu = 'http://www.yandex.ru/yandsearch?rpt=rad&text=%s';
var
  http: TIdHTTP;
begin
  http:=TIdHTTP.Create(nil);
  try
    result:=http.Get(Format(qu,[txt]));
  except
    result:='';
  end;
  http.Free;
end;

Вызов:
Передаем функции строку - значение поля формы.
На выходе получаем строку, в которой код страницы-ответа.
Например:
Код

var
  s: string;
begin
  s:=GetYaRu('Vingrad%20Delphi');

В результате выполнения, яндексу отправится запрос на поиск 'Vingrad Delphi',
страница с результатами вернется в переменную s.
P.S. Не забываем про кодировку - пробелы, знаки, русские буквы нужно перекодировать. В примере %20 - пробел.
PM MAIL   Вверх
Mach3
Дата 26.11.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 26.11.2005

Репутация: -1
Всего: 2



Snowy, спасибки за скорый ответ...
Именно то, что нужно..
А то беспокоился, что суть вопроса не поймут.. smile
Будем разбираться..
А програмка будет отправлять SMS-ки с сайта, хотя я сильно сомневаюсь.. smile
Там код с картинки вводить надо..

Примного БЛАГОДАРЕН !!
--------------------
Век живи - век учись...
PM MAIL ICQ   Вверх
F1reF0x
Дата 27.11.2005, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 10.10.2005

Репутация: нет
Всего: нет



Цитата
Там код с картинки вводить надо..


Если ты пишешь не флудер, то сделай так что бы эту картинку забирало с сервера, и вводить надо было ручками. Если надо напишу пример
PM MAIL   Вверх
FRAGNATIC
Дата 27.11.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: нет
Всего: 11



Цитата
Если ты пишешь не флудер

а если флудер то тогда распозновай текст на картинке - в помощь нейроные сети и поиск в разделе графика ) там был пример =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.