Вы здесьпроблемы с txt, html и ещё кое что об улучшении и оптимизации
Опубликовано вт, 14/10/2008 - 07:31 пользователем Eric-S
Forums: Здравствуйте! Я недавно на библиотеке, но уже заметил глюки. Например с двумя книгами В текст конвертируеться не очень корректно переводы строк. Заметил в "невеста из преисподни", там части разбиты символами "* * *", так вот они оказались в конце последнего абзаца, а должны быть на отдельных строках, причём обрамлены несколькими пустыми. Дальше, те html которые я видел, они не очень-то валидные. Логическая разметка ужасна. Например абзаци помечаны как заголовки. Если бы у меня были исходные тексты конвертеров, может быть я смогу чего-нибудь придумать и поправить. Так же, у меня возникла проблема с оперативным переключением скачиваемого формата. По поводу этой страници, у меня вообще другая мысль, и думаю, что она гораздо лучше. Попробую описать, как я себе представляю. На странице автора ссылка на книгу, одна без "читать" и "скачать". 1. страница информации Ну а формат, скачиваемого текста выбираем снизу, как это сейчас и сделано. Я думаю, это немного облегчит нагрузку на сервер. Далее, ещё хочу сказать про скачиванье сразу нескольких книг. Может быть стоит подумать об склейке архивов налету? Я имею в виду, то что ведь книги и так уже сжаты, зачем их ещё раз паковать? А если делать это на лету, в смысле в потоке, сразу отправляя клиенту, то обращения к диску на 66% будет меньше.
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
TaKir RE:Валерия Сергеевна Черепенчук А. Н. Николаева - Мифы... 9 часов
Isais RE:Древняя Греция. Читаем... 1 день Леди Стервa RE:Подайте бедному копеечку на книжку с литреса... 1 день laurentina1 RE:Ирина Александровна Велембовская - Немцы 3 дня Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 6 дней Саша из Киева RE:Избранное 1 неделя Alligatoreader RE:Багрепорт - 2 1 неделя fedor.de RE:Отображение страницы Librusek 1 неделя Isais RE:Чиполь Сергеевич Наглецов - Огненный дракон [СИ] 2 недели kopak RE:Таинственная личность админа Флибусты 2 недели blahblahblah2024 RE:Беженцы с Флибусты 2 недели sem14 RE:Что читать о блокаде Ленинграда. Подборка книг 2 недели sem14 RE:Михаил Юрьевич Берг - Андеграунд. Итоги. Ревизия_5 4 недели Oleg V.Cat RE:B343695 Александр. Книга 1 1 месяц Isais RE:Калибрятина/Самиздатина 1 месяц md2k15 RE:Относительно Вархаммер 40 000 1 месяц tvnic RE:"Коллектив авторов" 1 месяц SergL197 RE:Регистрация 1 месяц Впечатления о книгах
kolombok про Попаданец в Таларею
02 12 Детский сад с трахом. В самом начале герою были выданы такие рояли, я думал ну может нормализуется. Я был не прав.
Isais про Крылова: Сказки Деда Мороза (Сказка, Самиздат, сетевая литература)
01 12 На Либрусеке нет тэга "Творчество умственно отсталых графоманов"? Только "Творчество душевнобольных"? Ради такого вот стоило бы завести... Оценка: нечитаемо
Iron Man про Ахмадулина: Свеча (Поэзия: прочее)
01 12 Из интервью с Беллой Ахмадулиной: «— Вы знаете, что останется от моих стихов? Останутся только... письма читателей. Своего литературного значения я никогда не преувеличивала. Я знаю, что была человеком своего времени и ………
S@iRus про Иноходец (Рымжанов)
01 12 У меня сложилось такое же впечатление, как и у Олега, о данной серии.
андрей169 про Шалашов: Господин следователь 1 [СИ] (Альтернативная история, Исторический детектив, Попаданцы, Самиздат, сетевая литература)
29 11 Забавная книга. Мне лично зашло хорошо. С продолжением обязательно ознакомлюсь. Оценка: хорошо
udrees про Баковец: Не тот господин 3 (Порно, ЛитРПГ, Самиздат, сетевая литература)
29 11 Книга строго для отдыха мозгов, тем кому нравится читать про влажные подростковые фантазии про гарем, воплощенные в реальность, и сексуальные подвиги, перемешанные с фэнтези. Герой настолько крут, что особо не заморачивается ……… Оценка: неплохо
udrees про Михайлов: Без пощады. Книга 3 [СИ] (Боевая фантастика, Космическая фантастика, Самиздат, сетевая литература)
29 11 Последняя книга из серии, но не последняя книга про месть киборга Вертинского. Написано в том же стиле, что и предыдущие книги. Описание во многом уделено экшену, поэтому всегда держит в тонусе, сражения, драки, убийства и ……… Оценка: отлично!
lukmak про Сочинения Иосифа Бродского в 7 томах
29 11 Бродский - гений. А кто его не понимает - что ж... Он непрост. Но, ребята, если вы его не понимаете - может, это ваша проблема?.. И пиндосы тут ни при чём.
nik_ol про Донцова: Амур с гранатой (Иронический детектив, Детективы: прочее)
27 11 Конечно, я рада, что книги Донцовой выходят и выходят, но неужели, если она сама их пишет, то не помнит, что «старичок» был не Коробков, а Гри, её первый муж, до Ивана в этой серии?! Или всё-таки литературные негры клепают?! Оценка: неплохо
neletay про Котов: Ценитель [СИ] (Городское фэнтези, Самиздат, сетевая литература, Приключения)
27 11 Прочитала только несколько первых глав - и уже очень, очень нравится. Нравится все - сюжет, стиль, язык, ГГ, а также автор, который за всем этим видится. С удовольствием читаю дальше, надеюсь не разочароваться.
Lan2292 про Ермаков: Май, весна и апокалипсис. Книга 1 (Боевая фантастика, ЛитРПГ, Самиздат, сетевая литература)
27 11 Так себе чтиво, но не скучно. Оценка: неплохо
Chernovol про Коровин: После «Украины» (Политика, Публицистика)
25 11 Интересно, такие книги кто-то покупает или их бесплатно раздают. Оценка: нечитаемо |
Учите матчасть...
...про 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.
Само по себе оно довольно стабильное.
Питоновый вариант - даже работает :)