Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 48

Яндекс капча

10.04.2013, 13:18. Показов 2523. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется код:
Delphi
1
end else if pos ('captcha',response)<>0 then begin
Он означает, если в response найдено слово captcha, значит должно происходить действие.. а именно разгадывание капчи.
Значение в response при обнаружении капчи вот такое:
Location: http://yandex.ru/showcaptcha?r... 7bee&cc=1&

Кто нибудь может подсказать, как сделать разгадывание через AntiGate? Не получается почему-то...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2013, 13:18
Ответы с готовыми решениями:

Капча
Отправляю запрос на страницу с капчей и приходит такой ответ (что через программу, что через браузер): ‰PNG  IHDR...

Капча VK
Делаю приложение на Delphi и всё работает кроме одного - капча. Когда вылазит капча, я делаю повторный GET запрос: ...

Капча
Всем привет. ближе к делу. У нас есть .txt документ с него нужно брать построчно что там находится не пропуская ни одной строчки. В...

7
angstrom
10.04.2013, 13:20

Не по теме:


И хорошо что не получается, ибо не фиг.

1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 48
10.04.2013, 13:21  [ТС]
Цитата Сообщение от angstrom Посмотреть сообщение

Не по теме:


И хорошо что не получается, ибо не фиг.

Как это не фиг?) А если очень нужно?
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
10.04.2013, 13:22
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
unit ac;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, IdMultipartFormData;
 
type
  TAC = class(TComponent)
  private
    fapikey:string;
    fphrase:integer;
    fregsense:integer;
    fnumeric:integer;
    fcalc:integer;
    fmin_len:integer;
    fmax_len:integer;
    fis_russian:integer;
    { Private declarations }
  protected
    { Protected declarations }
  public
    function Recognize(filename:string):string;
    function Report(id:string):boolean;
    function Getbalans(key:string):string;
     { Public declarations }
  published
    property Apikey:string read fapikey write fapikey;
    property Phrase:integer read fphrase write fphrase;
    property Regsense:integer read fregsense write fregsense;
    property Numeric:integer read fnumeric write fnumeric;
    property Calc:integer read fcalc write fcalc;
    property Min_len:integer read fmin_len write fmin_len;
    property Max_len:integer read fmax_len write fmax_len;
    property Is_russian:integer read fis_russian write fis_russian;
    { Published declarations }
  constructor Create(aowner:Tcomponent);override;
  end;
 
procedure Register;
 
implementation
 
var HTTP:TIdHTTP;
 
procedure Register;
begin
  RegisterComponents('Standard', [tac]);
end;
 
constructor TAC.Create(aowner:Tcomponent);
begin
inherited create(aowner);
 fphrase:=0;
  fregsense:=0;
  fnumeric:=0;
  fcalc:=0;
  fmin_len:=0;
  fmax_len:=0;
  fis_russian:=0;
end;
 
function TAC.Getbalans(key: string): string;
begin
result:='';
HTTP:=TidHTTP.Create(nil);
result:=HTTP.Get('http://antigate.com/res.php?key='+key+'&action=getbalance');
HTTP.Free;
end;
 
function TAC.Recognize(filename: string): string;
var page,captcha_id, tip:String;
    i:integer;
    multi:Tidmultipartformdatastream;
begin
if pos('.jpg', filename)<>0 then tip:='image/jpeg';
if pos('.gif', filename)<>0 then tip:='image/gif';
if pos('.png', filename)<>0 then tip:='image/png';
 
multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('method','post');
multi.AddFormField('key', apikey);
multi.AddFile('file', filename, tip);
multi.AddFormField('phrase', IntToStr(fphrase)); 
multi.AddFormField('regsense', IntToStr(fregsense)); 
multi.AddFormField('numeric', IntToStr(fnumeric)); 
multi.AddFormField('calc', IntToStr(fcalc)); 
multi.AddFormField('min_len', IntToStr(fmin_len)); 
multi.AddFormField('max_len', IntToStr(fmax_len)); 
multi.AddFormField('is_russian ', IntToStr(fis_russian));
multi.AddFormField('soft_id','362'); 
 
HTTP:=TidHTTP.Create(nil);
page:=HTTP.Post('http://antigate.com/in.php', multi);
HTTP.Free;
multi.Free;
 
captcha_id:='';
if strpos(Pchar(page),'ERROR_')<>nil then begin result:=page; exit; end;
if strpos(Pchar(page),'OK|')<>nil then captcha_id:=Copy(page, pos('OK|', page)+length('OK|'), length(page));
if captcha_id='' then result:='ERROR: bad captcha id';
 
for i:=0 to 20 do
  begin
  sleep(5000);
  HTTP:=TidHTTP.Create(nil);
  page:=HTTP.Get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
  HTTP.Free;
  if strpos(Pchar(page),'ERROR_')<>nil then begin result:=page; exit; end;
  if strpos(Pchar(page),'OK|')<>nil then
    begin
      result:=Copy(page, pos('OK|', page)+length('OK|'), length(page));
      exit;
    end;
  end;
result:='ERROR_TIMEOUT';
end;
 
function TAC.Report(id: string): boolean;
begin
HTTP:=TidHTTP.Create(nil);
  try
    HTTP.Get('http://antigate.com/res.php?key='+apikey+'&action=reportbad&id='+id);
    result:=true;
  except
  result:=false;
  end;
HTTP.Free;
end;
 
end.
0
angstrom
10.04.2013, 13:23

Не по теме:


Спамить?

1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 48
10.04.2013, 13:25  [ТС]
kaspersky, а подробней? Как именно использовать этот код в моем случае. Покажите на примере капчи яндекса, как раз то, что мне нужно...
тем более у меня synapse
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
10.04.2013, 14:12
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('method','post');
multi.AddFormField('key', {ваш ip key на сайте http://antigate.com};
multi.AddFile('file', {отправляемая капча}, tip);
multi.AddFormField('phrase', IntToStr(fphrase)); 
multi.AddFormField('regsense', IntToStr(fregsense)); 
multi.AddFormField('numeric', IntToStr(fnumeric)); 
multi.AddFormField('calc', IntToStr(fcalc)); 
multi.AddFormField('min_len', IntToStr(fmin_len)); 
multi.AddFormField('max_len', IntToStr(fmax_len)); 
multi.AddFormField('is_russian ', IntToStr(fis_russian));
multi.AddFormField('soft_id','362');
Добавлено через 40 секунд
на сайте лучше почитай,там все напиано

Добавлено через 40 минут
Вот тут ответ сервера :

Delphi
1
result:=Copy(page, pos('OK|', page)+length('OK|'), length(page));
просто убери из result доставай строку после OK|
1
1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 48
10.04.2013, 15:10  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
  end else if pos ('captcha',response)<>0 then begin
     msg:='...!';
     Synchronize(memoAdd);
     captchapars:=parser(response,'showcaptcha?','');
     msg:='captcha';
     Synchronize(memoAdd);
     response:=send('GET','http://yandex.ru/showcaptcha?'+captchapars+'');
     parsimage:=parser(response,'http://yandex.ru/captchaimg?','" class="b-captcha__image"><br>');
     response:=send('GET','http://yandex.ru/captchaimg?'+parsimage+'');
     parsyakey:=parser(response,'image?','')
     response:=send('GET','http://i.captcha.yandex.net/image?'+parsyakey+'');
     msg:=response;
     Synchronize(memoAdd);
Начал делать вот так. Всё норм компилировалось, добавил это:
Delphi
1
response:=send('GET','http://i.captcha.yandex.net/image?'+parsyakey+'');
компилироваться перестало.. ругается на response
[Error] Unit2.pas(43): Missing operator or semicolon

Добавлено через 43 минуты
/delete
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2013, 15:10
Помогаю со студенческими работами здесь

Капча
Как вывести капчу в edit ? Дайте пример. С меня + :) var postdata:tstringlist; begin postdata:=TSTringList.Create; ...

Капча
как сделать на delphi чтобы я на эту красную точку нажал посмотрите http://www.dlh.net/public/images/dot.php? procedure...

Капча
Здравствуйте! Подскажите пожалуйста, возможно ли распознать данную капчу? цифры могут быть от 0 до 99. Как видно все цифры искорежены и...

Капча ВКонтакте
Здравствуйте, подскажите пожалуйста, как получить капчу Вконтакте из webbrowser? Если не трудно, помогите прикрутить antigate к этому...

Капча Вконтакте API. (прямая авторизация)
Делаю приложение на Delphi и всё работает кроме одного - капча. Когда вылазит капча, я делаю повторный GET запрос...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru