The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"content_encoding = gzip, и как его распаковать ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Perl)
Изначальное сообщение [ Отслеживать ]

"content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от Angelika email(ok) on 26-Апр-08, 22:24 
В последнее время всё больше сайтов используют сжатие 'КОНТЕНТА' (gzip).
В сети масса информации о том как сжать 'контент' на стороне сервера, но нет ничего о том,
как этот сжатый 'контент' можно было бы позаимствовать другим сервером (вытягивание 'контента').
Стуация:
Обмануть сайт-донор имитацией древнего браузера, чтобы он не упаковывал 'контент' - не получается, потому, что он игнорируя правила, всегда посылает сжатый 'контент'.
Мои эксперименты с использованием модуля  IO::Uncompress::Gunzip - ни к чему не привели.
Казалось бы, модуль специально предназначен для распаковки 'gzip', но при обработке им 'контента'- возникают ошибки не поддающиеся анализу (во всяком случае для меня).
Хотя, обычный упакованный c 'gzip' текстовый файт типа test.gz - распаковывает на Ура.
Теперь вопрос:
Кто сталкивался с подобной ситуацией, какие есть решения, рекомендации ?

П.С.: И еще странная вещь,- если весь 'контент' загнать в файл типа ххх.gz , и потом его попытаться распаковать стандартным архиватором, например 7-zip ,- то тоже не всё в порядке, файл распаковывается , но с большим количеством ошибок...
Да и до распаковки 'контент', загнанный в переменную - каждый раз разный (по обьёму и содержанию, не смотря на то, что страничка, с которой он вытягивался - не изменяется...

Мне кажется, что я топчусь где-то совсем рядом с разгадкой, вот только подтолкнуть не кому.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от anonymous (??) on 26-Апр-08, 23:12 
Пробовали использовать LWP?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от Angelika email(ok) on 26-Апр-08, 23:44 
Это в кратце:

use LWP::Simple qw(get);
use IO::Uncompress::Gunzip qw(gunzip $GunzipError);

my $url ="http://mooncity.combats.ru/inf.pl?login=Ktylhy";
my $response = $browser->get( $url );
my $data = $response->content; # вот здесь и должен быть 'контент'

gunzip $data => $output ; # по идее тут этот контент должен бы распаковаться в $output, но # не распаковывается, а если применить ответ по ошибке:
gunzip $data => $output or die "gunzip failed: $GunzipError\n";
# то возникают такие ошибки, что даже лог ошибок прочитать не удаётся (всё перекодируется на абра-кадабру...)


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от anonymous (??) on 27-Апр-08, 01:08 
gunzip $data => $output or die "gunzip failed: $GunzipError\n";

читаем документацию:
The parameter, $input, is used to define the source of the compressed data.
...
A scalar reference
    If $input is a scalar reference, the input data will be read from $$input.

Аналогично $output.

Итак:
gunzip \$data => \$output or die "gunzip failed: $GunzipError\n";

Когда вы просто передаёте строку (как сейчас), gunzip думает что это имя файла, и вам выдаётся еррор:
gunzip failed: input file 'абракадабра-в-формате-gzip' does not exist at /tmp/test.pl line 13.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от Angelika email(ok) on 27-Апр-08, 01:33 
Огромное спасибо тебе невидимка !!! )))
- Всё заработало, ура !!!
Такая мелочь оказалась...
Всего лишь черты косой не хватало (Эх, слабо у меня с английским).

Для начинающей самоучки - простительно )


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от anonymous (??) on 27-Апр-08, 01:38 
Если не знаете, что такое ссылки в Perl (references), почитайте: http://dklab.ru/chicken/nablas/21.html
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от Константин email(??) on 19-Фев-09, 08:23 
Как распаковать, например,
<item item-id="1" content-encoding="gzip">H4sIAAAAAAAA/6SUTU/CQBCG/7wGUi9EDYIfYOLBZA78B6EWGoQavAAJq1FPRo1H48lnZhda
S/ViCO3MvO987Mx05VDGksmc56405VBiuZaBTMzmLX1xoEPTLvidyyXWJPg1kDzWwlqXY2kX
PIZES2UH/QZpsUF2kPWdYUmRd/k1ZAnqsNTlyKI2QGKTZhKVMjYtWwZD7Tfmk5qcSg17IiPk
BWeZ4ltmZnILMuTvyHoNY12Zj6ucCbozXwdvbrXGSIrN8UnsbDXix3KPPMfjCsuYzJF1wjMz
GMqvkdNXco/uDJ2iOXz0qRGWsLTm7Yq1LxOQJLz7MFf49GFts/OsoxLvhDkp4w57HCKODeky
lW5AZxXoGXgL/2I12hOPtsxbMe3kFGxlyNpDu+y72Qk5dCd0Tmo7Dd0YWN58A6Mfmp9Nu8DV
fuskarZpzro4CuesYuVVHDCfYyqJqLrDTrXRGrKPvo9v1Gv1ur133i+9vVD/0PZhQSV+bzTK
J5U9wk857YO8yRfPvjzJs7zKB7qvQeewwlN3flm5A3mF1dPXHVPfGXY/z2QzmWKs7SrLW5Jz
Y9vfwR+M37eo/DVp1rjEKSJVZ15Q7djO4b+j9cn1BnHgmUW6Ct37z11SvEXWt13zGwAA//8D
AKGW3K/6BAAA</item>
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "content_encoding = gzip, и как его распаковать ?"  +/
Сообщение от dmitry email(??) on 06-Авг-10, 15:14 
Angelika напиши свой email,могу быть тебе полезен,да и ты мне ..

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру