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 ответов

13 просмотров

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, благодаря чему я могу пройтись со знанием всех номеров и склеить их в один

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта