Недавно столкнулась с такой ситуацией :
- Нужно было вытянуть страницу для дальнейшей её обработки (отфильтровка/коррекция/замена, и выдача некоторых данных на основе вытянутых).
При использовании стандарнтой процеруры на PERL:
use LWP::Simple gw(get);
$content=get("http://www.xxx.xx");
- Переменная $content должна содержать текст указанной Web страницы.
В подавляющем большинстве случаев - так оно и работает, но...
Вот интересный случай,- сервер с которого пытаюсь вытянуть страницу - возвращает какуюто чушь.
Есть подозрение, что этот сервер определяет тип браузера, а так как вытаскивает с него не браузер, а Апач , то он выдаёт что-то совсем не то.
Как с этим бороться ???
Для примера дам URL, содержимое которого нужно корректно загнать в переменную для дальнейшей обработки:
http://mooncity.combats.ru/inf.pl?login=КОНДОР
http://mooncity.combats.ru/inf.pl?login=Crayza
- Ну, в таком духе.Помогите пожалуйста, очень прошу, ночи не сплю, крыша уже едет (((
Может эта строчка вам подскажет дальнейшее направление поиска:
Content-Encoding: gzipЕсли еще сомневаетесь, то сделайте tcpdump -s 0 -XX host mooncity.combats.ru и откройте браузером
>Может эта строчка вам подскажет дальнейшее направление поиска:
>Content-Encoding: gzip
>
>Если еще сомневаетесь, то сделайте tcpdump -s 0 -XX host mooncity.combats.ru и
>откройте браузеромЗделала так (явно указав тип MIME):
print header(-type => 'gzip');- Эффект тот же, кстати, просто http://mooncity.combats.ru
- вытягивается нормально и без 'gzip'
А вот именоо http://mooncity.combats.ru/inf.pl?login=Crayza
- уже не хочет нормально вытягиваться (((ПС: Я не профи, просто немного хобби есть по вэб программированию, помогите пожалуйста.
Очень тяжело даётся самообразование (((
Разъясняю на пальцах. по этой ссылке http://mooncity.combats.ru/inf.pl?login=Crayza никакого отслеживания браузера не происходит. Браузер получает ту же информацию, что и ваш скрипт или wget(кстати запустите его с --debug и посмотрите). Если бы вы не испугались tcpdump и сделали, как я говорил, то вы бы это и сами увидели. Контент отдается в сжатом виде, браузер знает что дальше с таким контентом делать, а ваш скрипт нет.
Если вас интересует что же делать, то готового ответа у меня нет, никогда раньше не приходилось сталкиваться. Но если бы понадобилось, то я бы попробовал указать в хедерах http 1.0 и неприемлимость сжатия или почитал бы rfc по обработке gzip контента и поискал подходящий модуль на CPAN.
- К сожалению - я дерево...............
Мне бы готовое решение , сил нету (((
>- К сожалению - я дерево...............
>Мне бы готовое решение , сил нету (((что то в этом духе
http://search.cpan.org/~pmqs/IO-Compress-Zlib-2.009/pod/FAQ.pod