[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправка капчи для яши
Игорь_Vasinsky
. чёт я задымился. не могу сообразить правильный поэтапный алгоритм.

1. делаю курлом запрос к яше
2. получаю страницу с последующим парсингом

тут всё ясно biggrin.gif

теперь

1. делаю курлом запрос к яше
2. получаю капчу яши
3. распознаю картинку, получаю текст капчи
4. получаю всё необходимое для составление POST запроса курлом

ВОТ:
5. делаю POST запрос - но капча то уже новая и выходит - 3,4 пункты - уже не подходят.

Где торможу?

уже пару раз перекурил... можно ещё за игруху сесть, но тогда вообще до вечера могу пропасть laugh.gif



Спустя 7 минут, 45 секунд (2.07.2012 - 15:01) Игорь_Vasinsky написал(а):
Попробывал так

1.если после первой попытки я получаю капчу - то не закрываю соединение
2. распарсиваю страницу, получаю всё для POST
3. отправляю POST

но вижу что полученный код всё равно отличается от картинки.

Спустя 24 минуты, 13 секунд (2.07.2012 - 15:25) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 2.07.2012 - 14:53)
3. распознаю картинку, получаю текст капчи

Нифигасе rolleyes.gif и чем же ты её распознаёшь?

Спустя 1 минута, 19 секунд (2.07.2012 - 15:26) Игорь_Vasinsky написал(а):
killer8080
антигейтом. платный сервис.

или нужно получить с заголовку страницу после первой попытки и отсылать POST уже ей?

или форму симетировать с подстановкой полей?

чёт не варит голова.

Спустя 3 минуты, 55 секунд (2.07.2012 - 15:30) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 2.07.2012 - 15:26)
или нужно получить с заголовку страницу после первой попытки и отсылать POST уже ей?

После получения страницы с капчей, следующим запросом с теми же куками получить бинарник картинки, и уже его отправлять на распознавание. Так делаешь?

Спустя 3 минуты, 53 секунды (2.07.2012 - 15:34) Игорь_Vasinsky написал(а):
я получил сраницу с капчей вместо нужной.
распарсил, получил картинку. сохранил,отправил на распознование, получил код с антигейта + после парсинга все необходимые данные для составления POST запроса.

вот так.

но потом же я опять инициализирую соединение и этот составленный POST уже не канает, т.к. новая капча + новые данные.

Спустя 3 минуты, 59 секунд (2.07.2012 - 15:38) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 2.07.2012 - 15:34)
получил картинку. сохранил,отправил на распознование

либо при запросе картинки не передал куки, либо у яндекса более навороченная защита, и они распознают твоего бота. Может юзают флеш, или еще что...

Спустя 5 минут, 43 секунды (2.07.2012 - 15:44) Игорь_Vasinsky написал(а):
куки сохраняю. всё тип топ.

Спустя 37 минут, 59 секунд (2.07.2012 - 16:22) Nikitian написал(а):
Посмотрите ручками. Наверняка часть кук ставится яваскриптом или флешем уже клиенту и эту часть курл не получает и не передаёт, т.е. успешно палит себя, как бота smile.gif

Спустя 4 минуты, 46 секунд (2.07.2012 - 16:26) Игорь_Vasinsky написал(а):
уф. да не. я объясняю.

я получаю страницу с капчей.
читаю капчу, получаю код. я вижу что код = капча.

теперь мне нужно отправить POST - я инициализирую соединение - но капча уже же новая.

я в алгаритме заплутал.

мне нужно на первой попытке отправить POST, не во воторой. но я тока данные получаю в конце первой попытке.


смотри:

сurl - получил страницу с капчей, создал куки
я - распарсил страницу, получил код капчи + скрытые поля (вообщем всё что нужно для POST)

ТЕПЕРЬ

curl - получаю страницу чтобы послать c неё POST - но ТАМ УЖЕ ВСЁ ДРУГОЕ.

как еща объяснить не знаю. biggrin.gif

т.е. еслиб авторизация - то всё просто - есть форма и она постоянно одинакова. а тут капча - при каждом обращении к странице меняется же.

Спустя 3 минуты, 32 секунды (2.07.2012 - 16:30) Игорь_Vasinsky написал(а):
а второй раз куки наверн писать не нужно? чтобы яша первые прочитал?

UPD: не помогло.

Спустя 9 минут, 11 секунд (2.07.2012 - 16:39) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 2.07.2012 - 16:26)
смотри:

сurl - получил страницу с капчей, создал куки
я - распарсил страницу, получил код капчи + скрытые поля (вообщем всё что нужно для POST)

ТЕПЕРЬ

curl - получаю страницу чтобы послать c неё POST - но ТАМ УЖЕ ВСЁ ДРУГОЕ.

потому что яндекс уже понял что ты бот biggrin.gif
Курлом ты отправляешь только те куки, которые выставил сервер, а они могут модифицироваться на клиенте. Либо в форму через js добавляются дополнительные поля, или аякс запросы к серверу, мало ли какая там может быть защита smile.gif
Проделай те же запросы браузером, и отснифь трафик, сравни что браузер шлет серверу.

Спустя 4 минуты, 53 секунды (2.07.2012 - 16:44) Игорь_Vasinsky написал(а):
да. вижу разницу.

httpfox says:
yandexuid 622004061313557378 / .yandex.ru 19 Январь 2038 г. 9:16:10
yp 1633817305.sp.#1341227578.clh.1570784 / .yandex.ru 27 Июнь 2022 г. 17:12:57
fuid01 4e89a97503bbdae7.YaKcLs2_drUSlG5JNicJN0Hi2pFlYFAlWvgedfNDTqvka63nSdpPQsFMod7soVNO741UkDeLq7ujgnjxumfm8mtaKSiz4bCtU4anUG4gXWcFqoPXXyQ6TvBH9oJ sJo5T / .yandex.ru 26 Январь 2022 г. 2:10:05
yabs-frequency /4/0000000000000000/hma3FpWE8Qu601Su3cVAhGKNE0vk/ / .yandex.ru 7 Октябрь 2012 г. 17:17:11
aw 1_UeJxi5GAAgf8AAAAA//8DAAFHAQkA#A# / .yandex.ru 20 Июль 2012 г. 17:14:59
spravka dD0xMzQwOTY4NjY5O2k9NzcuNzkuMTc0LjE4Mjt1PTEzNDA5Njg2Njk1NzcxOTM1MDM7aD00ZDEyYTQyY2U4NTI1NTFlMmRhOGJlNjQ2Y2MyNjdiMw== / .yandex.ru 29 Июль 2012 г. 17:17:49

my file cookie
.yandex.ru TRUE / FALSE 1343826318 spravka dD0xMzA5Njk4MzE4O2k9OTQuNDEuMjIwLjEzODt1PTEzMDk2OTgzMTg3OTg3MjAxMjI7aD1mMDI5Njk0MjhmMzRhNzEzNDNmNDZkZjlkMjdhMWM2Ng==
.yandex.ru TRUE / FALSE 2147483647 yandexuid 1130961661341234950


Question: What do you need my friend? ph34r.gif

Спустя 51 минута, 36 секунд (2.07.2012 - 17:36) Игорь_Vasinsky написал(а):
так как мне не достающих куки перехватить? из заголовков читать? формировать, дописывать?

Спустя 49 минут, 21 секунда (2.07.2012 - 18:25) johniek_comp написал(а):
Игорь_Vasinsky
хаха, я капчу от яши бесплатно распознаю

Спустя 4 минуты, 28 секунд (2.07.2012 - 18:29) Nikitian написал(а):
Угадать алгоритм формирования и формировать их самостоятельно.

Спустя 8 минут, 24 секунды (2.07.2012 - 18:38) Игорь_Vasinsky написал(а):
кто нить может сказать - почему я в httpfox не вижу POST запроса???

    $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://yapos/'.$namePage);
curl_setopt($ch, CURLOPT_USERAGENT, $all_useragents[rand(0,19)]);
#curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://captcha.yandex.ru');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
#curl_setopt($ch,CURLOPT_TIMEOUT, rand(1,10));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'key='.$key.'&remote_ip='.$_SERVER['REMOTE_ADDR'].'&retpath='.$retpath.'&rep='.$code);
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT']."/cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT']."/cookie.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$html = curl_exec($ch);
curl_close($ch);

echo $html;

Спустя 6 минут, 39 секунд (2.07.2012 - 18:45) Nikitian написал(а):
httpfox показывает только те запросы, которые делаются из браузера. курл исполняется немного не там smile.gif

Спустя 6 минут, 6 секунд (2.07.2012 - 18:51) Игорь_Vasinsky написал(а):
ааа. действительно.

вообщем я как решил перегнуть ситуацию:

я проверил - если работать с сохранённой страницей руками - то все работает.

пробую курлом - болт. чё опять накасячил?

Спустя 1 час, 46 минут, 59 секунд (2.07.2012 - 20:38) Игорь_Vasinsky написал(а):
а где winston curloMan???

Спустя 12 часов, 44 минуты, 31 секунда (3.07.2012 - 09:22) killer8080 написал(а):
Игорь_Vasinsky
вообще браузер не обязан слать куки, это дело добровольное. Попробуй посылать запросы без кук. Только делай рандомную задержку перед запросами.

Спустя 1 час, 2 минуты, 33 секунды (3.07.2012 - 10:25) Игорь_Vasinsky написал(а):
нее. так он сразу говорит что куки отключены. пробывал.

Спустя 16 минут, 20 секунд (3.07.2012 - 10:41) killer8080 написал(а):
Игорь_Vasinsky
браузер с отключенными куками ведь работает, значит там на js защита от ботов.

Спустя 1 час, 57 минут, 29 секунд (3.07.2012 - 12:38) Игорь_Vasinsky написал(а):
лан. я отложил вопрос, как не огорчительно. у всех проблема с распознаванием картинки, у меня же .... уф.


через прокси буду пробовать.

Спустя 35 минут, 52 секунды (3.07.2012 - 13:14) killer8080 написал(а):
Игорь_Vasinsky
а userJS не устраивает? Или нужен именно серверный вариант?

Спустя 33 минуты, 41 секунда (3.07.2012 - 13:48) Игорь_Vasinsky написал(а):
да нет впринципе, можно и на клиенте отрабатывать. но как тут выше озвучали - это может быть и flash ... чёт не знаю - тратить время на разбор или нет.

Спустя 7 минут, 19 секунд (3.07.2012 - 13:55) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 3.07.2012 - 13:48)
да нет впринципе, можно и на клиенте отрабатывать. но как тут выше озвучали - это может быть и flash

на userJS можно все автоматизировать, кроме осмысленных действий пользователя smile.gif
Флеш не проблема, можно и на серверной стороне, но придется поднимать иксы.


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.