214 похожих чатов

Парни и непарни. Вкатился в айти буквально 3 дня назад,

да и то чисто потому, что знакомый готов был заплатить за плевый скрипт.
Потому вопрос может вообще плевый, а я просто гуглить не умею (хотя пытался)

Соответственно, я пишу мультипоточный парсер книжек и возникла у меня проблемка: а чё делать с нумерацией глав (полноценно проблему раскрываю ниже)? Т.е. если скачивать последовательно (что я уже реализовал), то получается пиздец долго (ибо этому ебанату нужно скачивать более 1к глав в среднем). А вот мультипоточно все получается достаточно быстро, но нумерация идёт по пизде.

На данный момент у меня алгоритм определения номера главы следующий:


String НазвГлав = название главы

String НомерГлавы = ""

Int счётчикЦифр = 0

For буква в НазвГлав:

If буква является цифрой:

счётчикЦифр+=1

НомерГлавы+= буква

If буква = ПослЗнак.НазвГлав:

Break


Иначе:

If счётчикЦифр>0:

Break


Вопрос у меня следующий: как решить проблему нумерации, если название главы будет следующее:
Хуй 1234.1
Хуй 1234.2

Или
Хуй 1234 часть 1
Хуй 1234 часть 2

При этом не имея проблем с главами типо (знак разделения номера главы и названия произвольный и может не быть):

Хуй 1234 - я пососал 2 раза


На данный момент решил данную проблему, закинув главы с полетевшей нумерацией для ручной нумерации, но этот способ, мягко говоря, пахнет хуем

12 ответов

26 просмотров

reduce

Tomislav-Đorđević Автор вопроса

Шо?

Tomislav-Đorđević Автор вопроса

Довольно смежная тема. Только не мангу, а восточные книжки. Название не помню

немного не понятно а как ты делаешь переходы между страницами сайта для скачивания? может быть тебе не надо париться за главы и прочее, а просто склеивать все в нужной последовательности по страницам? ну к примеру, на стр 50 начинается глава 4 и она будет длиться 40 страниц, а дальше будет 4.1 и еще 20 страниц, а потом глава 5. почему их нельзя просто постранично объединить в порядке именно страниц и получить таким образом все в нужной нумерации не заморачиваясь с самими главами?

Если известен набор шаблонов названий глав, то можно сделать набор регулярных выражений и по ним определять всё что нужно.

Tomislav-Đorđević Автор вопроса
Владислав
Если известен набор шаблонов названий глав, то мож...

Имеет смысл. Жалко только там шаблоны рандомные(

Tomislav Đorđević
Каждая глава на новой ссылке

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

Tomislav-Đorđević Автор вопроса
Denis Ladutsko
ну так если ты знаешь это разбиение то и собирай в...

А как я пойму, что скаченная глава это именно оно? Хотя, я могу сделать словарь, где ключом будет выступать ссылка. Но оперативка не ебанеться, если я в словарь запихну пару десятков миллионов символов?

Tomislav Đorđević
А как я пойму, что скаченная глава это именно оно?...

всегда можно сохранить в файл/базу/пр ))), но словарь да, похоже на то что надо

Tomislav-Đorđević Автор вопроса
Denis Ladutsko
всегда можно сохранить в файл/базу/пр ))), но слов...

Вот именно в этот момент у меня и проблема. На данный момент у меня все сохраняется в каждый файл на главу и называется он: номер главы.txt, благодаря чему я могу пройтись со знанием всех номеров и склеить их в один

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта