Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2009, 00:36   #1
Luke
Пользователь
 
Аватар для Luke
 
Регистрация: 12.10.2007
Сообщений: 32
По умолчанию Реггер на nextmail.ru

Доброе время суток.
Пишу реггер для nextmail.ru с автораспознаванием капчи.

Код:
procedure TfMain.btnStartClick(Sender: TObject);
var
  Data: TIdMultiPartFormDataStream;
  CCode, CID, CKey: String;
  htm: string;
  i, flag: DWORD;
  req: TStringList;
  CM : TIdCookieManager;
  mem: TMemoryStream;
begin
  CM := TidCookieManager.Create(HTTP);
  http.AllowCookies := true;
  http.CookieManager := CM;
  
  http.Get('http://www.nextmail.ru');
  Data := TIdMultiPartFormDataStream.Create;
  Data.AddFormField('name', '');
  Data.AddFormField('domain', 'nextmail.ru');
  Data.AddFormField('x', '60');
  Data.AddFormField('y', '14');
  http.Request.ContentType := 'text/html';
  http.Request.Accept := 'text/html';
  mem := TMemoryStream.Create;
  //Выдергиваем ссылку на капчу
  log.Lines.Text := http.Post('http://nextmail.ru/reg/obligatory.phtml?r1=91&i=.', Data);
  CCode := copy(log.Lines.Text, pos('/au/code.phtml?u=', log.Lines.Text) + 17, 13);
  http.Request.ContentType := '*/*';
  http.Request.Accept := 'image/jpeg';
  http.Get('http://nextmail.ru/au/code.phtml?u=' + CCode, mem);
  mem.SaveToFile('captcha.jpeg');
  mem.Destroy;
  //Тут распознается ключ капчи, без ошибок 100%, распознавание происходит из сохраненного файла
  CKey := GetKey();
  Data.Destroy;
  req := TStringList.Create;
  http.Request.Accept := 'text/html';
  req.Add('todo=obliginfo');
  req.Add('name=bdfygsdbdhfdbtr1132');
  req.Add('domain=nextmail.ru');
  req.Add('password=qwerty132');
  req.Add('pwdconf=qwerty132');
  req.Add('fullname=dfjksgfk');
  req.Add('sex=Male');
  req.Add('bday=2009-08-05');
  req.Add('regcode=' + CKey);
  req.Add('agreed=yes');
  req.Add('question=');
  req.Add('manualquest=');
  req.Add('answer=');
  req.Add('email=');
  req.Add('timezone=3');
  req.Add('antibot=6238');
  Log.lines.text := http.Post('http://nextmail.ru/reg/obligatory.phtml?r1=91&i=.nextmail_oru', req);
end;
Прочитал все темы данной тематики, не помогло.
Прошу посоветовать, как быть=)
Si vis pacem, para bellum!
Luke вне форума Ответить с цитированием
Старый 31.08.2009, 02:29   #2
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Я тож пробывал писать, сразу скажу там проблемы с Java Skripts
AquaKlaster вне форума Ответить с цитированием
Старый 31.08.2009, 02:32   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сниферим все запросы браузера и не паримся со скриптами.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.08.2009, 02:37   #4
Luke
Пользователь
 
Аватар для Luke
 
Регистрация: 12.10.2007
Сообщений: 32
По умолчанию

Пепел Феникса, снифал, вроде шлю теже... Но что то не так...

AquaKlaster, написал?=)
Si vis pacem, para bellum!
Luke вне форума Ответить с цитированием
Старый 31.08.2009, 02:37   #5
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Пепел Феникса, тоесть повторить всё что отправляетъ\гетит браузер?
AquaKlaster вне форума Ответить с цитированием
Старый 31.08.2009, 02:43   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну не все...но параметры запроса нам точно нужны(не все из них еще постоянны)

куки менагер есть и подключен??
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.08.2009, 02:45   #7
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Пепел Феникса, я когда присал такуой регер то всё парсил но в ответ пост запроса пришла ошибка "Включите Java Skripts "
AquaKlaster вне форума Ответить с цитированием
Старый 31.08.2009, 02:52   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

значит некоторые поля(под запросы) нужно копировать
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.08.2009, 03:06   #9
Luke
Пользователь
 
Аватар для Luke
 
Регистрация: 12.10.2007
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
куки менагер есть и подключен??
Код:
CM := TidCookieManager.Create(HTTP);
  http.AllowCookies := true;
  http.CookieManager := CM;
Все есть=)
Si vis pacem, para bellum!
Luke вне форума Ответить с цитированием
Старый 31.08.2009, 03:25   #10
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Luke Посмотреть сообщение
AquaKlaster, написал?=)
К сожилению помешали скрипты эти(((
AquaKlaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц