![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Нужен совет.
Задача обычная скачать страничку (просто текст)
И во когда победа вроде бы близка и стоит открыть файл и пропустить через фильтры ... В файле привет от китайского посла. Кодировки... Какая у меня? в какую конвертировать...? В общем в данном случае бесплодие методом тыка не лечится((( Вот. Сижу под линухами Alt. P.S. при чём что интересно в консоли всё ок а файл в иероглифах. И вообще может есть толее цивилизованый метод получить чистый текст... Заранее спасибо. Это сообщение отредактировал(а) Axe79 - 21.7.2009, 01:16 |
|||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 2 Всего: 34 |
А ты уверен, что исходная страница в "Windows1251", ты б сначала использовал find_encoding....
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
не уверен...
если не тяжело приведите пример использования... Просто в перловском ООП я новичок и немного путаюсь с синтаксисом((( Добавлено @ 09:06 Вроде как на CPAN-е Encode::Alias ? [$obj =] find_encoding(ENCODING) $obj---это опредиляемый текст? ENCODING--- это кодировка...? в общем в таком формате не работает
Это сообщение отредактировал(а) Axe79 - 21.7.2009, 09:07 |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Axe79, код у вас в первом посте вполне рабочий. Это подтверждает то, что при выводе на консоль текст читаем. Проблема у вас с текстовым редактором, где вы затем пытаетесь открыть сохраненный файл. Этот редактор либо не поддерживает utf8, либо по умолчанию открывает текст в неверной кодировке. Что это за редактор?
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
автоматически открывает в Konqeror
Закидываю в мозиллу тоже самое Опен офис Аналогично только если в простом kwrite то никаких проблем с кодировкой но у меня задача загрузив и сохранив страничку в файле открыть и пропустить через фильтры боюсь что я не туда забрёл... Потому что от тегов шаблонов и линков простым открытием не избавиться... то-есть если-б скрипт выдавал чистый текст я его наверное даже не сохранял а пускал в обработку Простите за сумбурность Добавлено через 7 минут и 59 секунд но на будущее универсальный определитель исходной кодировки не помешал бы... ![]() ![]() |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Ну ясное дело что в браузере страница открывается в неверной кодировке, потому как в коде страницы не указан charset. Вам нужно удалить все теги и оставить только текст? Посмотрите в сторону модуля HTML::FormatText. Если вам нужно извлечь какой-то конкретный текст страницы можно будет обойтись и простым регулярным выражением.
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
а есть какая-то основоположная разница между использованием регулярных выражений для очистки от гипертекстовой разметки?
и использованием модуля HTML::FormatText я например почти полностью обошёлся такими шаблонами:
может я и не прав ... Посоветуйте. Добавлено через 2 минуты и 27 секунд просто в шаблонах немного разбираюсь а с HTML::FormatText нет. да и внятных примеров чего-то не нашёл. |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
работаю под Windows... так что немного у меня не так как у Вас, код который дал Axe79 действительно что то делает, но Encode как то не так срабатывает.... Я его переписал на свой манер (именно там где используется Encode) и у меня под windows все нормально заработало..... может мой код поможет?
|
|||
|
||||
yorm |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
похоже, что кодировка правильная (utf8) но без флага. Распространенная проблема. Попробуй включить _utf8_on() - в строку добавится флаг. Если правильно понял, проблема узнать, в какой кодировке действительно отсылается страница? Я смотрю Firefox -> View -> Character Encoding, обычно так показывает правильно. А вообще, для конвертации можно использовать Text::Iconv, конвертирует на ура (но проблему с флагом не решает) |
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Ещё один нюанс.
Язык украинский и почему то вместо некоторых букв идут непечатаемые символы. используется такая кодировка
вот результаты: рстві� із ПопитБIЗНЕС-� ЕКЛАМАГ короче "Р" глючит и "Э" |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
||||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
||||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Что то я не обнаружил тут ни символа "Р", ни символа "Э". Тут есть "Р", но он как и положено после сохранения отображается символом "Р". Проверено на следующем однострочнике:
|
|||
|
||||
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
Имхо,
utf не совсем обычный текст. Можно довольно часто дать print на utf текст и скрипт обломится. wide character. Думаю, решение было в том, чтобы дать на текстовый файлхэндл вот такую штуку:
Тогда бы и utf в файл нормально записался. |
|||
|
||||
chorny |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.7.2009 Где: Молдавия Репутация: нет Всего: нет |
Кстати сайт правильно пишет в заголовках: "Content-Type: text/html; charset=windows-1251"
Вот так у меня правильно отображается страница в Firefox
|
|||
|
||||
Axe79 |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
тут походу ошибка в другом
после скачки всё нормально: <option value="100" >НЕРУХОМIСТЬ-Житло в новобудовах</option><option value="102" >НЕРУХОМIСТЬ-Однокімнатні квартири</option><option value="104" >НЕРУХОМIСТЬ-Двокімнатні квартири</option><option value="106" >НЕРУХОМIСТЬ-Трикімнатні квартири</option><option value="108" >НЕРУХОМIСТЬ-Чотирикімнатні квартири</option><option value="110" >НЕРУХОМIСТЬ-Багатокімнатні квартири</option><option value="112" >НЕРУХОМIСТЬ-Кімнати в місті та передмісті</option><option value="114" >НЕРУХОМIСТЬ-Квартири та кімнати в області</option> А вот после обработки HTML::FormatText имеем: НЕ� УХОМIСТЬЖитло в новобудовахНезавершенеЗдане після 2002 р.Однокімнатні квартириГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нДвокімнатні квартириГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвськийр-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нКімнати в місті та передмістіГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нКвартири та кімнати в областіПропозиціяКвартири та кімнати за межами областіПропозиціяКвартири та кімнати. ПопитПопит в містіПопит за межами містаОбмін житлаЗ'їзд� оз'їзд� івноціннийЗ більшої вот код:
Добавлено @ 16:13 к стати если можно б было сразу закинуть данные в
А то тут просит через файл
по уму красивее было б в одном скрипте скачать и отчистить от гипертекстовой разметки без промежуточного баловства с файлами и дескрипторами Добавлено @ 16:15 а то выходит как то не эстетично... в одном качаем в другом чистим Добавлено @ 16:17 для полноты ситуации сейчас скрипт для скачки выглядит так:
Добавлено @ 16:22 цикл ваял часа в 3 ночи. так что громко не смейтесь ... главное что работает ![]() Это сообщение отредактировал(а) Axe79 - 30.7.2009, 16:23 |
||||||||
|
|||||||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |