terratensor / kob-library-app

Поиск по толстым книгам ВП СССР
https://kob.svodd.ru
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Обработка html #51

Closed iprst closed 1 year ago

iprst commented 1 year ago

Собрано более 4 тысяч папок с текстами книг военно-исторической библиотеки в формате html. Часто в папке всего два файла — страница индекса со всей библиографической информацией, и страница с текстом книги. Иногда текст книги разделён на главы, если это большой роман (таких случаев предостаточно), и каждая глава представляет собой отдельную страницу html.

Когда мне для обработки попадается подобная папка в одиночном режиме, всё просто — в адресной строке проводника вызывается cmd и там сразу простенькая команда:

type *.htm > totalfinal.html 

В результате её выполнения все файлы в папке с соответствующим расширением сливаются в один большой файл, который далее обрабатывается любым браузером или парсером как целое. В случае html с прописанным в тегах названием книги и её автором, файлы к тому же очень просто переименовать в правильное название.

На выходе мне нужно получить все сборные файлы для каждой из 4+ тысяч папок без необходимости проводить 4+ тысяч одинаковых операций по слиянию. Но как перейти от одиночной процедуры к массовой мне неизвестно.

audetv commented 1 year ago

Я не силен в windows cmd, но поискал. Идея использовать цикл for для обхода по папкам, зайти в папку, применить команду, выйти из папки

Я сделал у себя такую структуру:

c:\terratensot\type-test

в папке type-test положил 2 папки 1 и 2 в каждой папке html файлы

Details

![2023-07-15_00-15-55](https://github.com/terratensor/kob-library-app/assets/10896447/c3da808a-4868-443e-b257-427b93b995da) ![2023-07-15_00-16-15](https://github.com/terratensor/kob-library-app/assets/10896447/3c0380ba-130e-49e7-bd0a-fbf23b4dfa6b)

Далее запустил в cmd команду (запускал команду из папки type-test в которой лежат папки для обработки):

for /D %i in (*) do (cd %i & type *.html > final.html & cd ..)
Details

![2023-07-15_00-20-02](https://github.com/terratensor/kob-library-app/assets/10896447/c5bc7442-8433-489d-8f32-c4a339ddc9b2)

И в каждой папке получилось по файлу final.html Наверное можно сделать красивее, можно идею развивать дальше.

Ссылки для ознакомления: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/for https://ab57.ru/cmdlist/for.html https://scriptcoding.ru/cmd-cykl/ https://scriptcoding.ru/komandnaya-stroka-for/

iprst commented 1 year ago

Благодарю, то что надо. На склеивание 11К+ файлов в 4271 папке ушло всего три с половиной минуты.

4271 — столько будет добавлено новых книг, которые мы пока ещё не добавляли.