| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > не понятная проблема. Браузер страницу открывает, |
| Автор: djusha 28.1.2012, 21:58 |
| не пойму проблему. вот таким образом можно получить Тиц домена картинкой: http://yandex.ru/cycounter?test.ru при запросе браузером проблем не возникает. но если запрашивать AnyEvent::HTTP, то отдает ошибку... но иногда нормально LWP::UserAgent отдает статус 200, но без тела... только заголовок. но опять же иногда нормально Проблема началась несколько дней назад. до этого те же скрипты работали прекрасно. Так же, те же самые скрипты на AnyEvent::HTTP и LWP::UserAgent без проблем работают... получение любого сайта или картинки не составляет проблемы... первая мысль была... яндекс забанил IP адреса... попробовал и с домашнего компа и с сервера... проблема сохраняется... что может быть? скрипты рабочие. другие страницы скачиваются http://yandex.ru/cycounter?test.ru с броузером тоже работает. что то я потерялся.... у кого какие мысли? Добавлено @ 22:04 ох... а каким образом заголовок темы отредактировать? |
| Автор: arto 28.1.2012, 23:37 |
| http://en.wikipedia.org/wiki/Chunked_transfer_encoding |
| Автор: djusha 29.1.2012, 00:07 | ||
И ??? Это он под AnyEvent так говорит. и то не всегда. Часто по другому - типа 596 | M-PM-^RM-QM-\0M-PM-5M-PM-<M-QM-^O M-PM->M-P... под LWP смотрели? умные мысли меня не посетили... |
| Автор: Pfailed 29.1.2012, 08:25 |
| Яндекс специльно или случайно кидает кривой ответ, который LWP обработать не может. Причину видно в заголовке в поле "X-Died". |
| Автор: djusha 29.1.2012, 09:22 | ||||
Это понятно, что яндекс включил защиту. причем буквально недавно. другой вопрос, что броузер то нормально показывает. причем в опере из режима отладки разные заголовки подсовывал / убирал... все равно работает... показывает... Из скрипта не хочет пробовал (под LWP) играть с заголовками, безрезультатно... под AnyEvent просто еще не разобрался как заголовки подсовывать.... по поводу заголовка... поля "X-Died". что то не видно его под AnyEvent смотрю
получаю $VAR1 = { 'Reason' => 'Время ожидания соединения истекло', 'URL' => 'http://yandex.ru/cycounter?www.com', 'Status' => 596 }; или не так смотрю? |
| Автор: Pfailed 29.1.2012, 09:51 | ||||||
| Это не похоже на защиту, скорее на ошибку. Ответ просто не соответствует спецификации HTTP 1.1. Видимо браузеры более лояльно относятся к спецификации чем lwp. Вот например
А в описании протокола четко сказано
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6 "X-Died" это в lwp:
Напишите письмо в Яндекс, может исправят. |
| Автор: djusha 29.1.2012, 10:15 | ||||||||
написать, мол, вот мне Вас сканировать не получается... исправте... не... все больше убеждаюсь, это защита от сканирования... тут вопрос стоит, как замаскировать запросы скрипта под браузер... Добавлено через 8 минут и 25 секунд хех... тот же запрос из Вашего примера: $ curl -i http://yandex.ru/cycounter?test.ru получает и заголовок и тело нормально... |
| Автор: djusha 29.1.2012, 16:26 |
Хмммм... есть нехорошее подозрение, что у яндекса все починилось.... хотя местами косяки проскакивают... |