Уведомления

Группа в Telegram: @pythonsu

#1 Май 13, 2012 16:07:05

Kane
Зарегистрирован: 2012-04-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг атом фида

fata1ex
Например в начале заголовка в квадратных скобках может быть доп.информация, вот если есть, то его выкинуть.
Её конечно же, ошибся. Дополнительную информацию.

Перепроверил свой пост выше, движок форума не отобразил кусок примера. Поменял в примере заголовка quote на code, теперь всё видно.

fata1ex
Выкинуть заголовок или информацию?
Выкинуть кусок текста в скобках из заголовка, если этот самый текст обнаруживается. Узнать я хотел следущее: можно проверить регэкспом наличие доп. инф-ы в заголовке? (если существует - проигнорировать, если нет - работать дальше, регулярка, приведённая dehun не срабатывает, если в других заголовках нет определённого куска )
Или сделать проверку вариантами из моего предыдущего поста, а затем все заголовки, которые прошли одну проверку, разобрать одной регуляркой; те, что прошли вторую - второй регуляркой и т.д.
Второй вариант мне кажется слишком мудрёным, поэтому и интересуюсь, может это делается проще?

Офлайн

#2 Май 13, 2012 23:15:46

Kane
Зарегистрирован: 2012-04-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг атом фида

Вот теперь сам себе и отвечаю

Намудрил регулярку:

^\[(\[(.+)\])? ?(.+) ?\((.+)\) ?\[(.+)\] ?(\[(.+)\])? ?(.+) ?\[(.+)\]\]
Все 50 с лишним тайтлов из фида hd фильмов разобрала успешно, но получилось местами как-то некрасиво.
Вот пример разобранного заголовка с доп. инфой в начале и середине:
Тайтл: [[Обновлено] Помни / Память / Мементо / Memento (Кристофер Нолан /Christopher Nolan) [2000, США, Триллер, криминал, детектив, BDRip 1080p] [10th Anniversary Special Edition] Dub+MVO+DVO+AVO+Ukr+Orig(Eng)+Sub(Rus,Eng) [21.78 GB]]
1: [Обновлено]
2: Обновлено
Название: Помни / Память / Мементо / Memento 
Режиссёр: Кристофер Нолан /Christopher Nolan
Информация: 2000, США, Триллер, криминал, детектив, BDRip 1080p] [10th Anniversary Special Edition
6: None
7: None
Перевод: Dub+MVO+DVO+AVO+Ukr+Orig(Eng)+Sub(Rus,Eng) 
Размер: 21.78 GB

re.search(regexp, title).group(x)
На x = 6 или 7 всегда отвечает None, 1 или 2 отвечает none, если в начале нет доп. инф-ы, это не криминально?
И на x = 5, если в середине заголовка есть доп. ин-фа, то она выведется вместе со списком жанров и качеством. Надо проспаться и поправить.



UPD:
fata1ex
например, так:
>>> m = re.search('\ (?P<num>\d*)', ' 12345')
>>> m.group('num')
'12345'

Немного поправил получаемое на выходе и привёл к такому виду:


>>> ^\[(\[(.+?)\])? ?(?P<name>.+?) ?\((?P<director>.+?) ?\) ?\[(?P<info>.+?)\] ?(\[(?P<extinfo>.+?)\])? ?(?P<translate>.+?) ?\[(?P<size>.+?)\]\]

Покритикуйте, пожалуйста, кому не лень, и если ум за разум не заходит.

Отредактировано Kane (Май 14, 2012 21:51:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version