Delphi – Indy (видеоурок). Регистрация на Rambler’е

4 марта 2010    

Очередной видеоурок по Delphi. В этот раз я покажу, как с помощью Delphi и компонента Indy написать программу для регистрации почтовых ящиков через сайт Rambler.ru.
Программа будет загружать на форму капчу с сайта, а затем отправлять на сайт данные для регистрации.

http://avtuh.ru/wp-content/uploads/regrambler.flv

А также можете почитать, как средствами Delphi авторизовываться на сайте Одноклассников.


Похожие записи из категории Видеоуроки Delphi

  • Delphi (видеоурок). Многопоточность и синхронизация
  • Delphi (видеоурок). Дополнительный поток в программе
  • Delphi – Indy (видеоурок). Авторизация на одноклассниках
  • Нравится


    Метки: , , , Рубрика: Видеоуроки Delphi


    обсуждение

    1. food пишет:

      Спасибо, интересно

      [Ответить]

    2. oleg пишет:

      Помогите отобразить каптчу по етой ссылке “http://mail.zp.ua/robot_check/showcode.php?sid=8601c780e829500e880185846ba3de2e”

      [Ответить]

      Zdez Bil Ya Reply:

      Это картинка формата jpeg.
      Делайте, как рассказано в уроке, только в uses подключите модуль jpeg, и файл сохраняйте с расширением jpeg

      [Ответить]

    3. oleg пишет:

      Не работает, вот код:
      S:=IdHTTP1.Get(‘http://mail.zp.ua/add.php‘);
      sid:=Copy(S, Pos(‘sid’, S)+16, 32);

      FS:=TFileStream.Create(‘captcha.jpeg’,FMCreate);
      IdHTTP1.Get(‘http://mail.zp.ua/robot_check/showcode.php?sid='+sid+'.jpeg', FS);
      FS.Free;
      Image1.Picture.LoadFromFile(‘captcha.jpeg’);
      В Uses jpeg уже был и результат одинаков, что я делаю не так? Может не так что понял???

      [Ответить]

      Zdez Bil Ya Reply:

      А почему у вас +16 стоит, если отступ там в четыре символа, а не 16.
      И в адресе картинки нет расширения ’.jpeg’, оно только у сохраняемой картинки:
      IdHTTP1.Get(‘http://mail.zp.ua/robot_check/showcode.php?sid='+sid, FS);

      [Ответить]

    4. oleg пишет:

      Все получилось, большое спасибо!!!

      [Ответить]

    5. oleg пишет:

      Скажите как можно зарегистрироваться если нет кнопки “Submit”? а только скрипт? ‘http://mail.zp.ua/add.php

      [Ответить]

      Zdez Bil Ya Reply:

      Кнопка или скрипт – не важно. Посмотрите снифером: просто пост-запрос на адрес ‘http://mail.zp.ua/add.post.php

      [Ответить]

    6. oleg пишет:

      Просто запросом ничего не получается:
      Data:=TStringList.Create;
      Data.Add(‘username=’+AddressEdit.Text);
      Data.Add(‘passwd=’+PasswordEdit.Text);
      Data.Add(‘passwd2=’+PasswordEdit.Text);
      Data.Add(‘rname=’+NameEdit.Text);
      Data.Add(‘sid=’+sid);
      Data.Add(‘code=’+CaptchaEdit.Text);

      S:=IdHTTP1.Post(‘http://mail.zp.ua/add.post.php', Data);
      if Pos(‘@mail.zp.ua’, S)0 then
      begin
      ResultLabel.Caption:=’ДА :) ’;

      [Ответить]

      Zdez Bil Ya Reply:

      Это последний бесплатный ответ)
      Разве снифер не показывает, что нужно передавать вопрос, ответ и email?

      [Ответить]

    7. oleg пишет:

      Добавил и ничего не изменилось :)
      Data.Add(‘question=Девичья фамилия матери’);
      Data.Add(‘answer=123654′);
      Data.Add(‘email=’);

      [Ответить]

      Zdez Bil Ya Reply:

      Data.Add(‘question=Девичья+фамилия+матери’);
      Data.Add(‘answer=1234321′);
      Data.Add(‘email=[email protected]’);
      если будут еще вопросы – стучите лучше в icq, здесь я буду всё удалять

      [Ответить]

    8. Den пишет:

      При нажатии получить каптчу ошибка IOHandler value is not valid.
      вот код
      implementation
      var idkey, S:string;
      {$R *.dfm}

      procedure TForm2.Button1Click(Sender: TObject);
      var FS:TFileStream;
      begin
      S:=IdHTTP1.Get(‘http://passport.yandex.ru/passport?mode=register&msg=mail‘);
      idkey:=Copy(S, Pos(‘idkey’, S)+16, 32);

      FS:=TFileStream.Create(‘captcha.gif’,FMCreate);
      IdHTTP1.Get(‘https://passport.yandex.ru/digits?idkey='+idkey , FS);
      FS.Free;
      Image1.Picture.LoadFromFile(‘captcha.gif’);
      end;

      end.

      [Ответить]

      Zdez Bil Ya Reply:

      В запросе протокол https. Присоедините к IdHTTP компонент IdSSLIOHandlerSocketOpenSSL

      [Ответить]

    9. Den пишет:

      Теперь ошибка ‘Could not load SSL Library’

      [Ответить]

      Zdez Bil Ya Reply:

      Библиотеки в “Windows/system32″ киньте

      [Ответить]

    10. Den пишет:

      Спасибо большое.

      [Ответить]

    11. I\O пишет:

      почему выдаёт ошибку I/O Error 102
      обьясните пожалуйста

      [Ответить]

    12. Anton пишет:

      Почему я не могу перехватить параметры снифером (с рамблера) ?

      [Ответить]

      Zdez Bil Ya Reply:

      Не знаю

      [Ответить]

    13. Anton пишет:

      А ты еще ВидеоУроки будеш выкладывать?

      [Ответить]

      Zdez Bil Ya Reply:

      да

      [Ответить]

    14. Ljovvka пишет:

      а как правильно парсить если скажем в коде страницы одинаковые параметры и два разных значения?Например:
      Имя
      <input name="x_e61b35b29b882a0e"

      Фамилия
      <input name="x_8d392d955392d516"

      как видите они почти одинаковые но тока слово имя или фамилия разные!
      надо спарсить два значения name=
      как написать правильно код на второе значение если на первое он так:
      name:=Pars('<input name="',S,'"');
      ООчень надо пожалста помогите кто по опытней!

      [Ответить]

      Zdez Bil Ya Reply:

      Парсите первое, удаляете, парсите второе

      [Ответить]

    15. Andrew пишет:

      Помогите пожалуйста! У меня не парсится hash вконтакте, что не так?

      Код:

      S:=IdHTTP1.Get(’http://http://vkontakte.ru/’);
      hash:=Copy(S, Pos(’hash’, S)+4, 18);

      [Ответить]

    16. Andrew пишет:

      Нашёл решение :)
      Огромное спасибо вам за видеоуроки!

      [Ответить]

    17. TEKTON пишет:

      А я сталкнулся с проблемой
      Хотел сделать регистратор на одном из сайтов, но там регистрация проходит на Java скриптах.
      Можно ли сделать регистратор в таком случае ???
      Если можно, снимите видеоурок как такое сделать.
      Заранее спасибо!

      [Ответить]

      Zdez Bil Ya Reply:

      Разницы никакой нет. Включаете снифер и смотрите запросы

      [Ответить]

    18. TEKTON пишет:

      Отследил такую штуку
      action[0]=AuthExt.logon&username[0]=Мой логин&password[0]=Мой пароль&remember[0]=1
      Но что дальше делать с этим не знаю, и в какой момент происходит проверка не знаю.

      [Ответить]

      Zdez Bil Ya Reply:

      Это параметры запроса. Отсылаете, приходит ответ, анализируете его

      [Ответить]

    19. TEKTON пишет:

      A можно по подробнее на примере вот этого форума ? _http://blackstar.clanbb.ru/

      [Ответить]

      Zdez Bil Ya Reply:

      Пример дан в видеоуроке.

      [Ответить]

    20. TEKTON пишет:

      “Пример дан в видеоуроке”.

      Нет в видеоуроке и намёка как работать с java скриптами.
      Там показана только работа с Html кодом.
      Поэтому вопрос остаётся в силе!

      [Ответить]

      Zdez Bil Ya Reply:

      Я вам сказал, что никакой разницы нет. Браузер с сервером общаются запросами и ответами. Снифер всё это показывает

      [Ответить]

    21. imbaduck пишет:

      А из за чего может быть ошибка при компиляции.
      property maxlineaction does not exist

      [Ответить]

      Zdez Bil Ya Reply:

      Вы уверены, что это при компиляции ошибка? Скорее всего при открытии проекта. Просто игнорируйте

      [Ответить]

      Zdez Bil Ya Reply:

      Вы уверены, что при компиляции? Скорее всего при открытии проекта. Просто игнорируйте

      [Ответить]

    22. Oleg пишет:

      Что-то не проходит. Выдаёт ошибку. Собственно код, помогите найти то, что не даёт пройти регистрацию.
      procedure TForm1.Button2Click(Sender: TObject);
      var
      Data:TStringList;
      begin
      Data:=TStringlist.Create;
      Data. Add(‘skin=id’);
      Data.Add(‘uniq_id=’+uniq_id);
      Data.Add(‘action=register’);
      Data.Add(‘user.fname=’+Edit1.Text);
      Data.Add(‘user.Lname=’+Edit2.Text);
      if RadioButton1.Checked then
      Data.Add(‘user.gender=1′)
      else
      Data.Add(‘user.gender=2′);
      Data.Add(‘user.bday’+Edit3.Text);
      Data.Add(‘user.bmonth’+Edit4.Text);
      Data.Add(‘user.byear’+Edit5.Text);
      Data.Add(‘user.login=’+Edit6.Text);
      Data.Add(‘user.domain=’+comboBox1.Text);
      Data.Add(‘user.password1=’+Edit7.Text);
      Data.Add(‘user.password2=’+Edit7.Text);
      Data.Add(‘user.question=’+combobox2.Text);
      Data.Add(‘user.answer=’+Edit8.Text);
      Data.Add(‘user.Captcha=’+Edit9.Text);
      S:=idhttp1.Post(‘http://id.rambler.ru/script/newuser.cgi',Data);
      if pos(‘logout’,S)0 then
      Memo1.Lines.Add(‘Регистрация успешно завершена!’)
      else
      Memo1.Lines.Add(‘This is FAIL! Произошла ошибка!’);

      [Ответить]

    23. -=Exe=- пишет:

      var
      Form1: TForm1;

      implementation
      var uniq_id, S:string;
      {$R *.dfm}

      procedure TForm1.Button1Click(Sender: TObject);
      var FS:TFileStream;
      begin
      S:=IdHTTP1.Get(‘http://id.rambler.ru/script/newuser.cgi‘);
      uniq_id:=Copy(S, Pos(‘uniq_id’, S)+16, 32);

      FS:TFileStream.Create(‘captcha.jpg’,FMCcreate);
      idHTTP1.Get(‘http://id.rambler.ru/captcha/'+uniq_id+'.jpg', FS);
      FS.Free;
      Image1.Picture.LoadFromFile(‘captcha.jpg’);
      end;

      Вот код для получения капчи на рамблере,но ошибка вот в это

      S:=IdHTTP1.Get(‘http://id.rambler.ru/script/newuser.cgi‘);

      [Ответить]

    24. Иван пишет:

      Программа сломалась! Не хочет регать акки! В чём может быть проблема?
      Каптча получается нормально!

      [Ответить]

      Zdez Bil Ya Reply:

      Это не полноценная программа. Это всего лишь демо к уроку. Скорее всего что-то поменяли в регистрации.

      [Ответить]

    25. Nail пишет:

      Молочдчик, если это делал еще ты ты ахуенна! от души молодчик!

      [Ответить]

    26. Nurik пишет:

      Спасибо за урок дружище! Реально полезное дело делаешь.
      Я тока не понял а как куки проверяются? В проекте о них ни слова, а снифак четко в строке показывает чеккуки
      Имхо, для затравки урок – самое оно! Но тема вроде не полностью раскрыта… м?

      [Ответить]

    27. GeTrux пишет:

      Здравствуйте. если есть у кого исходник скрипта для секретного вопроса на рамблере скинте пожалуйста. пытался сам написать но нечего не выходит! мешает капча а к ней не получается подобратся. ну или посоветуйте что небудь. Заранее спасибо.

      [Ответить]

    28. Maxim пишет:

      Я создал дал еррор
      IOhandler но я сделал норм:))
      потом Could not load SSL Library
      а сейчас Error conecting with SSL

      [Ответить]


    оставить комментарий или два