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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2015, 19:57   #1
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию Get Solvemedia Captcha

Всем привет.
Нужно получить программой Solvemedia капчу, но не простую, а "легкую".
Два самых распространенных формата этой капчи - img(готовая картинка) и html(капча рисуется прямо в браузере, канвас).
И оба этих вида можно поделить еще на два - легкие и сложные.
Обчно сложные начинают появляться в браузере, если берешь слишком часто новую капчу с одного и того же ип "на одном и том же сайте".

Так, я нашел нужную мне ссылку, которая генерирует челендж на нужную капчу.

http://api.solvemedia.com/papi/_challenge.js?k=o-mubMTi7BBM98cMxgtIcLP4k1Ga5QJl;f=_A CPuzzleUtil.callbacks%5B3%5D;l=en;t =img;s=standard;c=js,h5c,h5ct,svg,h 5v,v/h264,v/ogg,v/webm,h5a,a/mp3,a/ogg,ua/chrome,ua/chrome40,os/nt,os/nt6.1,expand,swf16,swf16.0,swf,fwv/MXXvzg.giag44,jslib/jquery,htmlplus;am=dMieAWrtnXZFvZqF au2ddg;ca=script;ts=1426099115;ct=1 426088161;th=black;r=0.753774315817 2816

Сам челендж, это значение "chid", потом эту капчу получить можно будет по ссылке http://api.solvemedia.com/papi/media?c=ТУТ ЧЕЛЛЕНДЖ;w=300;h=150;fg=ffffff;bg=1 11111

Дальше. Когда я делаю запрос с браузера, то возвращает зачастую html капчи, реже img капчи, и всегда(если очень быстро не обновлять страницу) - капчи легкого типа.

Когда я делаю запрос на данный сайт с помощью программы - в основном возвращает img капчи, редко html - и всегда сложного типа.

Подскажите, в чем может быть проблема, и как можно программно получить именно легкую капчу, как в браузере,(с помощью http запросов, без всяких TWebBrowser'ов).

Еще немного насчет куков:
Когда делаю запрос с браузера - передается 4 кукиса, и один в response (обновляет один из тех 4 кукисов).

Когда запрос делаю программно - сразу разумеется без кукисов, но после второго запроса - набор кукисов заполняется и стает такой же как и у браузера,но на третий запрос, уже со всеми куками - все равно сложная капча.

Запрос копирую как могу, единственное отличие нахожу - в браузерном запросе http 1.1 а в программноm http 1.0 , не знаю как исправить.

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

Последний раз редактировалось MorgunZ; 12.03.2015 в 19:59.
MorgunZ вне форума Ответить с цитированием
Старый 12.03.2015, 20:28   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

собственно а где ваш алгоритм кодом?

Делаете теже запросы что и веб-браузер+указываете браузерный User-Agent.
Человек_Борща вне форума Ответить с цитированием
Старый 12.03.2015, 20:38   #3
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Код:
http2 := thttpsend.Create;
  http2.Headers.Add('Host: api.solvemedia.com');
  http2.Headers.Add('Cache-Control: max-age=0');

  http2.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36';
  http2.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
  http2.Headers.Add('Accept-Encoding: gzip, deflate, sdch');
  http2.Headers.Add('Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  http2.KeepAlive := true;
http2.HTTPMethod('GET', 'http://api.solvemedia.com/papi/_challenge.js?k=o-mubMTi7BBM98cMxgtIcLP4k1Ga5QJl');


  http2.Document.Clear;
  http2.Headers.Clear;
  http2.Headers.Add('Host: api.solvemedia.com');
  http2.Headers.Add('Cache-Control: max-age=0');
  http2.Headers.Add('Accept-Encoding: gzip, deflate, sdch');
  http2.Headers.Add('Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  http2.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36';
  http2.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');

  http2.KeepAlive := true;
  http2.HTTPMethod('GET', 'http://api.solvemedia.com/papi/_challenge.js?k=o-mubMTi7BBM98cMxgtIcLP4k1Ga5QJl;f=_ACPuzzleUtil.callbacks%5B3%5D;l=en;t=img;s=standard;c=js,h5c,h5ct,svg,h5v,v/h264,v/ogg,v/webm,h5a,a/mp3,a/ogg,ua/chrome,ua/chrome40,os/'+'nt,os/nt6.1,expand,swf16,swf16.0,swf,fwv/MXXvzg.giag44,jslib/jquery,htmlplus;am=dMieAWrtnXZFvZqFau2ddg;ca=script;ts=1426099115;ct=1426088161;th=black;r=0.7537743158172816');
  http2.Document.Clear;
  http2.Headers.Clear;
  http2.Headers.Add('Host: api.solvemedia.com');
  http2.Headers.Add('Cache-Control: max-age=0');
 // http2.Headers.Add('Accept-Encoding: gzip, deflate, sdch');
  http2.Headers.Add('Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  http2.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36';
  http2.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');

  http2.KeepAlive := true;
  http2.HTTPMethod('GET', 'http://api.solvemedia.com/papi/_challenge.js?k=o-mubMTi7BBM98cMxgtIcLP4k1Ga5QJl;f=_ACPuzzleUtil.callbacks%5B4%5D;l=en;t=img;s=standard;c=js,h5c,h5ct,svg,h5v,v/h264,v/ogg,v/webm,h5a,a/mp3,a/ogg,ua/chrome,ua/chrome40,os/'+'nt,os/nt6.1,expand,swf16,swf16.0,swf,fwv/MXXvzg.giag44,jslib/jquery,htmlplus;am=dMieAWrtnXZFvZqFau2ddg;ca=script;ts=1426099115;ct=1426088161;th=black;r=0.7537743158172816');
  ts := tstringlist.Create;
  ts.LoadFromStream(http2.Document);
  s := ts.Text;
  ts.Free;

  http2.HTTPMethod('GET', 'http://api.solvemedia.com/papi/media?c='+  Parse('"chid"     : "',s,'"')+';w=300;h=150;fg=ffffff;bg=111111');
  http2.Document.SaveToFile('image2');
  http2.Free;
Пробовал разными вариантами, последний запрос - почти идентичен браузерному.
MorgunZ вне форума Ответить с цитированием
Старый 12.03.2015, 20:43   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Тут про solvemedia что-то было http://programmersforum.ru/showthread.php?t=267513
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.03.2015, 20:47   #5
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Немного не то, тем способом я капчу пробовал выкачивать, мне нужен данный способ, который я описал. Получить челлендж и из него капчу.
MorgunZ вне форума Ответить с цитированием
Старый 12.03.2015, 23:00   #6
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Сделал идентичный запрос через сайт https://www.hurl.it/#top , возвращает капчи трудные, и тут же я делаю запрос просто напрямую с браузера - и капчи легкие
MorgunZ вне форума Ответить с цитированием
Старый 13.03.2015, 21:49   #7
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Решил проблему, не особо понял как.
Просто вместо синапса попробовал инди, то помогло, единственное различие между запросми в сниффере - инди=http1.1 а синапс=http1.0, может быть была проблема в этом.
MorgunZ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Captcha Софья1992 PHP 1 20.05.2013 09:27
Captcha nefakt Общие вопросы Delphi 39 30.04.2013 01:55
Captcha shananina-katya Помощь студентам 1 15.05.2012 14:07
captcha Boy7407 Работа с сетью в Delphi 11 09.01.2012 06:22
captcha DeDoK Работа с сетью в Delphi 9 30.03.2010 23:22