Вы здесьпроблемы с txt, html и ещё кое что об улучшении и оптимизации
Опубликовано вт, 14/10/2008 - 07:31 пользователем Eric-S
Forums: Здравствуйте! Я недавно на библиотеке, но уже заметил глюки. Например с двумя книгами В текст конвертируеться не очень корректно переводы строк. Заметил в "невеста из преисподни", там части разбиты символами "* * *", так вот они оказались в конце последнего абзаца, а должны быть на отдельных строках, причём обрамлены несколькими пустыми. Дальше, те html которые я видел, они не очень-то валидные. Логическая разметка ужасна. Например абзаци помечаны как заголовки. Если бы у меня были исходные тексты конвертеров, может быть я смогу чего-нибудь придумать и поправить. Так же, у меня возникла проблема с оперативным переключением скачиваемого формата. По поводу этой страници, у меня вообще другая мысль, и думаю, что она гораздо лучше. Попробую описать, как я себе представляю. На странице автора ссылка на книгу, одна без "читать" и "скачать". 1. страница информации Ну а формат, скачиваемого текста выбираем снизу, как это сейчас и сделано. Я думаю, это немного облегчит нагрузку на сервер. Далее, ещё хочу сказать про скачиванье сразу нескольких книг. Может быть стоит подумать об склейке архивов налету? Я имею в виду, то что ведь книги и так уже сжаты, зачем их ещё раз паковать? А если делать это на лету, в смысле в потоке, сразу отправляя клиенту, то обращения к диску на 66% будет меньше.
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
Саша из Киева RE:Файл достаточно хорош. Нет смысла в его улучшении. Ага,... 1 день
Belomor.canal RE:Подайте бедному копеечку на книжку с литреса... 2 дня mazay RE:Sleepy Xoma - Bagⲣѱnoⲣojdennaѱ 3 дня zlyaka RE:С Новым годом! 4 дня Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 5 дней SparkySpirit RE:Прошу переформатировать, распознать, etc... 1 неделя SparkySpirit RE:Жорж Санд - переводы 19 века 1 неделя Саша из Киева RE:Наш дом - СССР 1 неделя babajga RE:Чернушка. Повести 1 неделя Саша из Киева RE:Сказки далёких островов 1 неделя babajga RE:Лопоухий бес 2 недели kopak RE:Таинственная личность админа Флибусты 2 недели babajga RE:Ежик покидает дом 2 недели babajga RE:Сказки бабушки Черепахи 2 недели babajga RE:Свист диких крыльев 2 недели Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 2 недели Саша из Киева RE:Турецкие мусорщики в Анкаре открыли библиотеку, полную... 3 недели Isais RE:Не тот автор 1 месяц Впечатления о книгах
polyn про Мартова: Одна смертельная тайна [litres] (Детективы: прочее)
05 01 Необычайно атмосферная книга, что даже я,обычно мало обращающая внимание на антураж, прониклась. Автор проделал гигантскую работу, изучая крестьянский быт середины 19 – начала 20 века российской глубинки. Оценка: отлично!
Дядя Морган про А. В. Панов
05 01 полёт Юрия Гагарина он тоже отрицал" И правильно отрицал, ведь Ю.Гагарин "Бога не видел", а значит небесной тверди не достиг, крутился где-то поблизости, в стратосфере.
Саша из Киева про Куанг: Отчий край [Quê nội ru] (Детская проза)
04 01 У книги Во Куанга "Отчий край" ("Quê nội") есть продолжение - книга "Tảng Sáng" ("Рассвет"). Но, к сожалению, на русский язык она не переведена.
slafan про Вадим Агарев
04 01 Написано грамотно. Но постепенно сюжет замедляется, непрерывная повторяемость действий ГГ уже надоедает, набор «шуток» один и тот же, все женщины от них ежедневно «выпадают из действительности», 90% текста - описание того, ………
Анни-Мари про Анна Леденцовская
04 01 Действительно, Леденцовская - так сладко, что слипается, и рояли рядами, причем не в кустах, а вместо них.))) Но читается неплохо.
Олег Макаров. про А. В. Панов
04 01 Кейсинг - непосредственный участник событий, нуи профессионал разумеется, не диванный эксперд" Только одно скажу: полёт Юрия Гагарина он тоже отрицал.
Oleg68 про Кобен: Вне игры [Fade Away ru] (Детективы: прочее)
03 01 Книга понравилась. Очередная интересная история про Майрона Болитара. Оценка: отлично!
187 про А. В. Панов
03 01 Как подметил sd_kozel, Кейсинг - непосредственный участник событий, нуи профессионал разумеется, не диванный эксперд. Кстати у автора вышла книга "Программа «Артемида»: Новый лунный обман США. Афёра 21-го века." - о очередной ………
kerch64 про Шамбаров: Как Царь Алексей Михайлович и Богдан Хмельницкий Украину освободили (Исторические приключения, История)
03 01 Книга" не историческая а продукт современной российской пропаганды. Исторические исследования не оперируют терминологией типа - "проглотить", "одолевать", "громил" и т.п. Все это создает нужный автору эмоциональный фон. ……… Оценка: плохо
Barbud про Тарханов: Объективная реальность (Исторические приключения, Самиздат, сетевая литература)
02 01 Начав читать главу 11, с удивлением узнал, что жену Сталина звали Светланой. Это точно не наш мир!)) Оценка: плохо
Олег Макаров. про Столичный доктор
02 01 Хорошая серия. Мне понравилась. Я, правда, не спец по выискиванию ошибок, я просто удовольствие от чтения либо получаю, либо не получаю |
Учите матчасть...
...про pkzip'ы и платформы, форматы архивных файлов, упаковку, нагрузку и прочее.
И, кстати, здесь принят русский язык. Нормальный и, по возможности, грамотный.
Отв: Учите матчасть...
1. Зачем грубить людям?
2. Что вас не устраивает в его языке?
Отв: Учите матчасть...
Не знаю уж, что тут грубость, а неустраивает меня, в частности, слова, вроде "улудшении".
Отв: Учите матчасть...
Это не грубость. Это хамство. IMO.
С таким подходом те же дети или люди только изучающие русский или страдающие дислексией и так далее и тому подобное форумами пользоваться не имеют права. Пока не выучат в совершенстве/не подрастут/не излечатся.
Мерзость какая.
Отв: проблемы с txt, html
Все это так. Конвертируется на лету из fb2, так что валидны там только они(да и то не все :)).
По поводу конвертеров... Где-то валялся движок... Я в этом не разбираюсь, но возможно там что-то найдете.
Отв: проблемы с txt, html и ещё кое что об улудшении и оптимиза
Было бы очень хорошо, если бы Вы смогли улучшить конвертер.А сорсы открыты - см. "Движок (для установки на сервер)" вот тут: http://lib.rus.ec/allbooks
Отв: проблемы с txt, html и ещё кое что об улудшении и оптимиза
pkn постом выше я дал ему ссылку на этот самый движок.
Отв: проблемы с txt, html и ещё кое что об улудшении и оптимиза
(посмотрев) А... действительно, я не заметил. Э-э... ну и что? Я что-то нарушил?
Отв: проблемы с txt, html
Да нет. Просто внимательней надо быть. По крайней мере, если в теме три коротких поста, неплохо бы их прочесть, перед тем как отвечать.
Отв: проблемы с txt, html
Знаешь, я тебе могу сказать - просто ссылки надо давать более внятно.
Отв: проблемы с txt, html
Сам понял какую фигню сморозил? Ссылка выделяется синим цветом. Это намного более компактный и красивый вид ссылки, чем длинный кусок текста.
Отв: проблемы с txt, html
1. В моей цветовой схеме ссылка под текстом выделяется не очень ярко.
2. "По поводу конвертеров... Где-то валялся движок... Я в этом не разбираюсь, но возможно там что-то найдете." - это внятно?
3. У тебя сегодня плохое настроение? Так я тогда лучше пойду себе, чтобы ты и мне его не портил.
Отв: проблемы с txt, html
Это проблемы твоей цветовой схемы, но никак не невнятности ссылки. Подобная практика ссылок является общепринятой.
Отв: проблемы с txt
Моя просить прощения за некорректный русский натуральный язык.
Моя стараться (пытаться) исправляться.
За ссылки спасибо, скачал, посмотрю.
Если пойму где собака зарыта, попытаюсь её откапать, но ничего не гарантирую.
А про матчасть... Имхо, всё правильно написал. Я в этом разбираюсь, может не очень хорошо, но что куда представляю.
Выводы делал, на счёт pkzip из того, как архив оформлен и сколько времени ушло на подготовку.
Ведь согласитесь, всё это не налету! А приходиться ждать.
Есть одна библиотечка zlib, так она жмёт именно в памяти, диск сдесь не участвует.
А теперь давайте считать.
старый вариант.
1. берём список книг для упаковки.
2. читаем их с диска, сжимаем и опять пишем на диск.
3. пользователю даёться ссылка для скачки, и архив опять читаеться с диска.
Про конвертацию на лету и кэширование я не упомянул, так как это здесь можно не считать.
теперь то что предложил я.
1. список файлов для упаковки.
2. делаем заголовок архива.
3. читаем архив книги с диска, и выдераем сжатый файл.
4. сжатую книгу в ставляем в создаваемый архив.
Теперь замечания.
1. метод работать будет только для обычных архивов из "непрерывных" файл не выдрать.
2. работать с архивами придёться на низком уровне, т.е. заголовок и т.п. анализировать и генерировать самостоятельно.
4. отправка файла, тут может быть ещё одна сложность, php и другие сеансовые, имеют лимит по времени работы, а у некоторых пользователей инет бывает тормознутый и за 30 сек большой архив они не успеют выкачать.
А теперь считаем сколько раз обратились к диску? 1. По сравнению с 3 в старом варианте.
Ну а выводы и возможность реализации в конкретном случае... Это уж точно не про меня.
Наезда же про матчасть, всё ещё не понял. Я своё обосновал, хотелось бы получить ваше обоснование. Возможность моего заблуждения не исключена, но ошибки пока в рассуждениях не вижу.
Кстати, архивы txt, html и pdf генерируються при загрузке книги, делать их на лету это черезчур! Места они занимают не очень много. А генерировать их каждый раз накладно.
Отв: проблемы с txt
Я бы на Вашем месте делал выводы *после* анализа сорсов.
На всякий случай - и заранее извиняюсь за дидактику - библиотека написана Лариным (larin). Он здесь админ, бог, царь, и Пророк Его. Мы все тут - точно такие же юзеры, как и Вы, просто уже повозившиеся, в том числе и с сорсами... некоторое время.
Я знаю, что конвертер (из fb2 в другие форматы) глюкав, и если бы Вы его довели до ума - Вас бы тут залюбили до смерти.
А вот насчет зип-операций я не уверен. Ларин последнее время занимается именно снижением нагрузки на сервер. Я, честно говоря, не думаю, что оптимизация зип-операций актуальна. Но - честно - сорсы в этой части я не смотрел, да и даже если бы смотрел - вряд ли понял бы. Я - application programmer... когда мне не хватает ресурсов, я просто звоню начальству и говорю - добавьте процессоров, @#$%^&! ;-)
Отв: проблемы с txt, и html
Я только на днях перебрался на либрусек и ещё тут почти ничего не знаю.
Да, вы правы смотреть нужно в сорцы, но у меня они только что появились.
А косвенные выводы... У меня был анологичный эфект, когда я пользовал консольный pkzip.exe.
При потоковом же скачка начинаеться сразу.
сейчас лезу в сорци, но сначала конвертер. К сожалению у меня времени крайне мало.
исходники
Тот архив, что я скачал по первой ссылке это именно движок сайта.
И я не нашел в нём конвертора.
Нашел место, которое предположительно вызывает конвертор и если я всё правильно понял, то делаеться это именно через консоль.
Причём конвертер, (как я опять же подозреваю) написан на perl, которым я почти не владею.
Лучшем вариантом может быть, только написание другого.
Отв: исходники
Отв: исходники
Насчет архивов: http://lib.rus.ec/node/103819#comment-9854.
Конвертер / fb2 парсер (parser.inc) использует php xml парсер.
Насчет лучшего варианта - не спорю :)
Отв: кое что об улучшении и оптимизации
Для конверчения ФБ2 в текст можно, скажем, и вот этой приблудой воспользоваться - всё RAM-based (кроме свопа, понятно) :)
zlib - голый компрессор (gzip, фактически), а здесь архив собирается обычно из нескольких файлов.
при чём zip-формат выглядит предпочтительнее по соображениям переносимости (ага, InfoZip есть даже для VM/CMS).
эффективное сжатие - процедура CPU-intensive и не факт, что более короткий результирующий файл даст выигрыш на передаче на фоне затрат на сжатие.
а ещё для эффективного сжатия нужно много ОЗУ (для примера - можно поиграть в гуях с настройками форточного 7zip при открытом таск-манагере) и растёт риск "пошаркать свапом", что приведёт к росту количества дисковых операций.
и не зная состава оборудования, среды исполнения, ресурсных ограничений, типового профиля нагрузки и "соседних" программ я бы не рискнул делать заключения об эффективности реализации даже после чтения сорцов.
Отв: проблемы с txt, html
Да, zlib это голый gzip и не только.
Если коротко, то zlib использует тотже самый алгоритм сжатия, что и zip.
Вот только заголовки придёться делать самому, что делать было мне вломно.
А для выдирания сжатых файлов, хватит обычного чтения файла в бинарном режиме.
И отправлять всё сразу на сокет, что не займёт ни памяти, ни темболее свопа.
Про архивы я почитал. Там всё сказано, посему обсуждение архивов можно закрыть в этой теме.
Ссылка на fb2_tag... это не конвертор, а анализатор тегов.
Где-то помниться мне попадался конвертор, толи от Димы Грибова, толи ещё кого-то из той же тусы.
Отв: проблемы с txt, html
На данный момент лучший конвертор fb2Any
http://www.gribuser.ru/xml/fictionbook/2.0/software/FB2Any.exe
Но там нет html. В html хорошо конвертирует встроенный конвертор FBE:
http://rapidshare.com/files/127249582/FictionBook_Editor_2.0_beta_build_02_Jul.exe
Конверторы Cool Reader-а глючные, теряют структуру текста.
На сайтах Альдебарана и Фикшнбука были свои скрипты-конверторы, но, как понимаю, это "для своих".
UPD
fb2Any тоже не без глюков. Отлично понимая юникодовые символы, он не может расшифровать неразрывный дефис, заменяя квадратиком (нераспознанный символ).
И, если решите собирать свой конвертор, не повторяйте частую ошибку (странно, но сам Грибов ее тоже делал) – не применяйте курсив (italic) к другим стилям кроме emphasis.
Отв: проблемы с txt, html
Отв: проблемы с txt, html
Элементарно, Ватсон! (с) Если автор выделил слово курсивом в стихе, цитате, эпиграфе, то об этом никто не узнает - курсив на курсиве не виден.
"Стоял он, дум великих полн..."
превращается в
"Стоял он, дум великих полн..."
Отв: проблемы с txt, html
"Стоял он, дум великих полн..."
UPD: проверил - таки да, ни одна читалка не поддерживает таког фокуса. Жаль. :(
Отв: проблемы с txt, html
Знаете в чём разница между fb2_any, прочими и теми которые нужны на сайте?
Эти конверторы делаються под разные платформы.
На сайте perl скрипт, что делает его платформанезависимым, а fb2_any под винду. Или есть версии под линух?
Как я уже писал, perl я не знаю, и написать конвертор на нём не способен.
Тут есть два варианта либо php, который говорят медленнее перла на некоторых операциях. Зато я его знаю.
Либо cgi, но тут другой вопрос, а можно ли будет скомпилировать мою прогу на серваке? Зато по скорости она будет гораздо быстрее аналогов на perl или php.
К томуже для написания конвертора нужно время....
Или заняться изучением жемчужины? Что тоже займёт какое-то время.
К тому же новый конвертор тоже будет глючным, над ним придёться биться, вылавливая незнакомые баги.
Остаёться качать fb2_any и пользовать его. А с html и txt распрощаться.
Но я немного о другом говорил, что видел конверторы. Хотя это ещё не факт. Они были именно на перле. Но тогда я послал их нафиг, а теперь не помню где они встретились.
Отв: проблемы с txt, html
CGI = Common Gateway Interface, при чём тут компиляция?
Это - то, через что, грубо говоря, работают c уеб-сервером и перл и пхп...
Отв: проблемы с txt, html
Угу... А ещё CGI-простейший способ прикрутить к веб-серверу двоичный (скомпилированный) исполняемый модуль.
Поскольку далеко не все хостеры позволяют такую самодеятельность, вопрос герра Эрика не лишен смысла.
Да, не совсем понял изначальную постановку задачи. Хотим-то мы что ? Конвертер fb2->txt ? Если да, изложите, плиз, требования, все равно сейчас примерно этим же занимаюсь. В настоящий момент отягощен следующими довесками - Poco, libxml2 (не я, конвертер отягощен). Язык программирования - С++. ANSI :)))
Отв: проблемы с txt, html
Легко! Первое - чтобы конвертер не умирал на первом же не-ASCII символе. Второе - чтобы не умирал вообще никогда - то бишь, был способен скушать не просто невалидный по схеме, а откровенно кривой fb2-файл, и не подавиться (то бишь, никаких библиотечных XML парсеров, sorry). Третье - чтобы понимал все кодировки, возможные в fb2 - включая нестандарт (выдавая на выход UTF-8). Четвертое - чтобы если продуцирует html, то закрывал за собой теги, и желательно в нужном месте. Пятое - чтобы его можно было прикрутить к Либрусеку - perl, php, python, C/C++ - whatever, хоть sed, но чтобы можно было к CGI прицепить.
А дальше - ещё придумаем.
Отв: проблемы с txt, html
fixed :)
Не бывает :)) Валидирующий парсер использоваться не будет, так что несоответствие схеме - прокатит.
Писать парсер совсем уж ручками... Морально не готов, да и файлы с очень грубыми нарушениями структуры (те же незакрытые теги) коректно не обработаешь. IMHO.
При условии их прописывания в encoding= и наличия в системе (доступности для iconv) Принято к исполнению.
На выход - в лог или в выходной файл ? Читателю не захорошеет Unicode - текст читать ?
Обижаешь, начальник, мокрое дело шьёшь.... :)
Принято к исполнению.
Отв: проблемы с txt, html
Гм... ну да, про не-ASCII символы это я загнул, извините. Я имел в виду вот это: http://lib.rus.ec/node/109354#comment-15627
(строгим голосом IBM) "Если возможно написать без ошибки одну строку, то почему нельзя написать без ошибок всю программу?" ;) (впрочем, см. ниже)
Ну, я не знаю как работает парсер которым Вы пользуетесь. Тот, с которым я пробовал возиться (модуль Perl-а) умирал при малейшем намеке на не то что грубые, а любые нарушения. Причем умирал, гад, молча. Вот этого хотелось бы избежать. Хотелось бы, чтобы если уж произошла ошибка, то на выходе было бы осмысленное сообщение, помогающее ошибку в fb2 найти и исправить.
В конце концов я от использования парсера отказался. Возможно, что и Вы в конце концов откажетесь. Не так уж оно на самом деле сложно - переконвертировать тело fb2 в txt, если не гоняться за красивостями, а делать попроще и покрепче.
Ага... так... вот: по состоянию fb2-книг Либрусека на 09 сент 2008, кодировки:
Total : 105061 files for directory E:\libr
windows-1252 : 364 files.
windows-1251 : 82687 files.
ISO-8859-1 : 6 files.
KOI8-R : 1 files.
UTF-8 : 21997 files.
Bad : 25 files.
Причем "плохих" файлов два вида:
1. Структура вообще порушена, encoding не извлекается - но все такие файлы (их всего 6) у автора Синюкова, и они либо уже исправлены, либо скоро будут.
2. Второй вид (19 файлов) интереснее. Encoding указан либо "windows-1252" либо "iso-8859-1" (только эти два), но текст представлен в виде типа:
"Смерть мафии!"
(что читается так: "Смерть мафии!")
Я, на самом деле, даже не знаю что это за кодировка и может она правильная (fb2-читалки её берут). Имею в виду, что конвертеру неплохо бы и такое уметь прожевывать.
?? Ну мы же читаем? Имеющийся либрусечный конвертер выводит именно UTF-8. В stdout выводит, если я правильно понимаю как оно привинчено.
Ну эта... Имеющийся либрусечный конвертер имеет нехорошую привычку при каких-то неясных условиях не закрывать H3, вот я и упомянул.
Отв: проблемы с txt, html
Оно не привинчено, а выросло изнутри.
В основном из файла parser.inc
Там достаточно плотная интеграция - выковиривается обложка и оглавление для страницы книги, суётся в базу, аннотация, ещё кое-что анализируется. Внешний парсер не так просто прикрутить будет, лучше встроенный починить попробывать. А ещё лучше - переписать его без пхпшной обработки хмля, потому как ошибки она не обрабатывает, а молча падает. Неудобно.
Отв: проблемы с txt, html
Вот эта хрень, будучи запущена с ключиком
-t
, выводит текст всех тэгов, которые сыщет в ФБ2-файле. От букв, вроде ещё не мёрла. На питоне, правда, не ANSI C. За то - на чистом питоне, только штатная библиотека поюзана. Специально под ЦГИ не заточена - а надо? Можно и допилить - добавить ключик--CGI
и парсить стандартный вход и т.п. Чё все какие-то "решения" ищут?...Отв: проблемы с txt, html
не "библиотечных", а "валидирующих".
тот же expat - невалидирующий библиотечный парсер.
толжен работать.
Отв: проблемы с txt, html
Он никому ничего не должен. Наверное поэтому и не работает.
Отв: проблемы с txt, html
Странно, а у меня работает...
Что я делаю не так?
ЗЫ Да, скрипт разные кодировки понимает...
Отв: проблемы с txt, html
Вы скармливаете ему корректные XML-файлы. Скормите некорректный - и будет Вам Счастье. :P
Отв: проблемы с txt, html
Дык, кормил...
Не знаю, правда, что вообще с ними делать-то?
Сейчас, если ничего не путаю, ругается.
Default encoding is 'cp1251'
Language is ('Russian_Russia', '1251')
< book1.fb2
Error: mismatched tag: line 21, column 4 in book1.fb2
= total 1 files for 0.02" (62.50FPS)
= 0 files rejected; 0 files skipped
Как-то фантазма не хватает - так и так на ручной разбор отправлять надо.
Или нет?
Отв: проблемы с txt, html
Гм... тогда не знаю. У меня XML-парсер, реализованный как модуль Перл-а, и, насколько я знаю, являющийся тем же самым expat-ом, на ошибках умирал молча. За что я его и послал.
Отв: проблемы с txt, html
expat - вообще-то бинарная библиотека (древняя, как дерьмо мамонта - как бы не первая открытая в этом деле), невалидирующий парсер XML.
Само по себе оно довольно стабильное.
Питоновый вариант - даже работает :)