да и то чисто потому, что знакомый готов был заплатить за плевый скрипт.
Потому вопрос может вообще плевый, а я просто гуглить не умею (хотя пытался)
Соответственно, я пишу мультипоточный парсер книжек и возникла у меня проблемка: а чё делать с нумерацией глав (полноценно проблему раскрываю ниже)? Т.е. если скачивать последовательно (что я уже реализовал), то получается пиздец долго (ибо этому ебанату нужно скачивать более 1к глав в среднем). А вот мультипоточно все получается достаточно быстро, но нумерация идёт по пизде.
На данный момент у меня алгоритм определения номера главы следующий:
String НазвГлав = название главы
String НомерГлавы = ""
Int счётчикЦифр = 0
For буква в НазвГлав:
If буква является цифрой:
счётчикЦифр+=1
НомерГлавы+= буква
If буква = ПослЗнак.НазвГлав:
Break
Иначе:
If счётчикЦифр>0:
Break
Вопрос у меня следующий: как решить проблему нумерации, если название главы будет следующее:
Хуй 1234.1
Хуй 1234.2
Или
Хуй 1234 часть 1
Хуй 1234 часть 2
При этом не имея проблем с главами типо (знак разделения номера главы и названия произвольный и может не быть):
Хуй 1234 - я пососал 2 раза
На данный момент решил данную проблему, закинув главы с полетевшей нумерацией для ручной нумерации, но этот способ, мягко говоря, пахнет хуем
reduce
Шо?
Довольно смежная тема. Только не мангу, а восточные книжки. Название не помню
немного не понятно а как ты делаешь переходы между страницами сайта для скачивания? может быть тебе не надо париться за главы и прочее, а просто склеивать все в нужной последовательности по страницам? ну к примеру, на стр 50 начинается глава 4 и она будет длиться 40 страниц, а дальше будет 4.1 и еще 20 страниц, а потом глава 5. почему их нельзя просто постранично объединить в порядке именно страниц и получить таким образом все в нужной нумерации не заморачиваясь с самими главами?
Если известен набор шаблонов названий глав, то можно сделать набор регулярных выражений и по ним определять всё что нужно.
Каждая глава на новой ссылке
Имеет смысл. Жалко только там шаблоны рандомные(
ну так если ты знаешь это разбиение то и собирай в нужном порядке. если в несколько потоков собираешь, то можешь заранее сделать коллекцию с нужным порядком, потом прочитать все и в этом же порядке пересохранить
А как я пойму, что скаченная глава это именно оно? Хотя, я могу сделать словарь, где ключом будет выступать ссылка. Но оперативка не ебанеться, если я в словарь запихну пару десятков миллионов символов?
всегда можно сохранить в файл/базу/пр ))), но словарь да, похоже на то что надо
Вот именно в этот момент у меня и проблема. На данный момент у меня все сохраняется в каждый файл на главу и называется он: номер главы.txt, благодаря чему я могу пройтись со знанием всех номеров и склеить их в один
Обсуждают сегодня