[GH-ISSUE #304] AttributeError: 'NoneType' object has no attribute 'text' #239

Closed
opened 2026-10-13 19:52:16 +00:00 by bsakaguchi · 33 comments
Owner

Originally created by @makar0nin on GitHub (Aug 21, 2019).
Original GitHub issue: https://github.com/werwolfby/monitorrent/issues/304

При каждой проверке сыпет:

Traceback (most recent call last):
File "/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute
episodes = self._prepare_request(topic)
File "/monitorrent/plugins/trackers/lostfilm.py", line 799, in prepare_request
show = self.tracker.parse_url(topic.url, True)
File "/monitorrent/plugins/trackers/lostfilm.py", line 510, in parse_url
result = LostFilmShow(original_name=title_block.find('div', class
='title-en').text,
AttributeError: 'NoneType' object has no attribute 'text'

Originally created by @makar0nin on GitHub (Aug 21, 2019). Original GitHub issue: https://github.com/werwolfby/monitorrent/issues/304 При каждой проверке сыпет: Traceback (most recent call last): File "/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute episodes = self._prepare_request(topic) File "/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request show = self.tracker.parse_url(topic.url, True) File "/monitorrent/plugins/trackers/lostfilm.py", line 510, in parse_url result = LostFilmShow(original_name=title_block.find('div', class_='title-en').text, AttributeError: 'NoneType' object has no attribute 'text'
Author
Owner

@Akior commented on GitHub (Aug 22, 2019):

У лоста сменилась структура div класса.
image
@werwolfby Это корректная правка для лоста ?
image
У меня в таком варианте ошибка пропала, торренты пошли грузиться.

<!-- gh-comment-id:523763220 --> @Akior commented on GitHub (Aug 22, 2019): У лоста сменилась структура div класса. ![image](https://user-images.githubusercontent.com/5903863/63490096-72c63980-c4bc-11e9-88b4-4a2a39a9a868.png) @werwolfby Это корректная правка для лоста ? ![image](https://user-images.githubusercontent.com/5903863/63490124-8c678100-c4bc-11e9-8f6a-d54e8d7d3ed6.png) У меня в таком варианте ошибка пропала, торренты пошли грузиться.
Author
Owner

@makar0nin commented on GitHub (Aug 22, 2019):

@Akior может pull-request ускорит решение проблем)))

<!-- gh-comment-id:524021137 --> @makar0nin commented on GitHub (Aug 22, 2019): @Akior может pull-request ускорит решение проблем)))
Author
Owner

@Akior commented on GitHub (Aug 22, 2019):

@Akior может pull-request ускорит решение проблем)))

Вы можете так же у себя поменять эти параметры. (510 строка в файле /monitorrent/plugins/trackers/lostfilm.py )
За целый день exception у меня не возникли.

<!-- gh-comment-id:524058430 --> @Akior commented on GitHub (Aug 22, 2019): > @Akior может pull-request ускорит решение проблем))) Вы можете так же у себя поменять эти параметры. (510 строка в файле /monitorrent/plugins/trackers/lostfilm.py ) За целый день exception у меня не возникли.
Author
Owner

@makar0nin commented on GitHub (Aug 22, 2019):

@Akior а разве пересобирать не надо? Там вроде рядом лежат pyc файлы. Я просто в питоне не соображаю.

<!-- gh-comment-id:524099926 --> @makar0nin commented on GitHub (Aug 22, 2019): @Akior а разве пересобирать не надо? Там вроде рядом лежат pyc файлы. Я просто в питоне не соображаю.
Author
Owner

@RuPF commented on GitHub (Aug 23, 2019):

Я зашел в 510 строку в файле /monitorrent/plugins/trackers/lostfilm.py
Заменил
`result = LostFilmShow(original_name=title_block.find('div', class_='title-en').text,
russian_name=title_block.find('div', class_='title-ru').text,
на
result = LostFilmShow(original_name=title_block.find('h2', class_='title-en').text,
russian_name=title_block.find('h1', class_='title-ru').text,
сохранил, перезапустил Monitorrent и все заработало.

<!-- gh-comment-id:524241907 --> @RuPF commented on GitHub (Aug 23, 2019): Я зашел в 510 строку в файле /monitorrent/plugins/trackers/lostfilm.py Заменил `result = LostFilmShow(original_name=title_block.find(**'div'**, class_='title-en').text, russian_name=title_block.find(**'div'**, class_='title-ru').text, на result = LostFilmShow(original_name=title_block.find(**'h2'**, class_='title-en').text, russian_name=title_block.find(**'h1'**, class_='title-ru').text, сохранил, перезапустил Monitorrent и все заработало.
Author
Owner

@Akior commented on GitHub (Aug 23, 2019):

Для тех кто в докере использует, тоже можно подправить:
docker exec monitorrent vi monitorrent/plugins/trackers/lostfilm.py

<!-- gh-comment-id:524261223 --> @Akior commented on GitHub (Aug 23, 2019): Для тех кто в докере использует, тоже можно подправить: docker exec monitorrent vi monitorrent/plugins/trackers/lostfilm.py
Author
Owner

@makar0nin commented on GitHub (Aug 23, 2019):

@Akior @RuPF может еще и по этому #302 что подскажете

<!-- gh-comment-id:524272483 --> @makar0nin commented on GitHub (Aug 23, 2019): @Akior @RuPF может еще и по этому #302 что подскажете
Author
Owner

@n-gry commented on GitHub (Sep 6, 2019):

поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка

Traceback (most recent call last):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute
episodes = self._prepare_request(topic)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request
show = self.tracker.parse_url(topic.url, True)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url
for season in self._parse_series(soup):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in parse_series
serie_blocks = series_block.find_all('div', class
='serie-block')
AttributeError: 'NoneType' object has no attribute 'find_all'

<!-- gh-comment-id:528755988 --> @n-gry commented on GitHub (Sep 6, 2019): поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка > Traceback (most recent call last): File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute episodes = self._prepare_request(topic) File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request show = self.tracker.parse_url(topic.url, True) File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url for season in self._parse_series(soup): File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in _parse_series serie_blocks = series_block.find_all('div', class_='serie-block') AttributeError: 'NoneType' object has no attribute 'find_all'
Author
Owner

@abaistov commented on GitHub (Sep 6, 2019):

У меня такая же проблема, как и у @4ak1

<!-- gh-comment-id:528857630 --> @abaistov commented on GitHub (Sep 6, 2019): У меня такая же проблема, как и у @4ak1
Author
Owner

@abaistov commented on GitHub (Sep 6, 2019):

У меня такая же проблема, как и у @4ak1

Помогло удаление-добавление "проблемной" раздачи.

<!-- gh-comment-id:528922758 --> @abaistov commented on GitHub (Sep 6, 2019): > У меня такая же проблема, как и у @4ak1 Помогло удаление-добавление "проблемной" раздачи.
Author
Owner

@Akior commented on GitHub (Sep 8, 2019):

Мне такое не попадалось. Надо посмотреть див класс такой раздачи, может там тоже "h"
Попробуйте как сказали выше, пересоздать раздачу.

поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка

Traceback (most recent call last):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute
episodes = self._prepare_request(topic)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request
show = self.tracker.parse_url(topic.url, True)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url
for season in self._parse_series(soup):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in parse_series
serie_blocks = series_block.find_all('div', class
='serie-block')
AttributeError: 'NoneType' object has no attribute 'find_all'

<!-- gh-comment-id:529189884 --> @Akior commented on GitHub (Sep 8, 2019): Мне такое не попадалось. Надо посмотреть див класс такой раздачи, может там тоже "h" Попробуйте как сказали выше, пересоздать раздачу. > > > поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка > > > Traceback (most recent call last): > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute > > episodes = self._prepare_request(topic) > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request > > show = self.tracker.parse_url(topic.url, True) > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url > > for season in self._parse_series(soup): > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in _parse_series > > serie_blocks = series_block.find_all('div', class_='serie-block') > > AttributeError: 'NoneType' object has no attribute 'find_all'
Author
Owner

@jMurr commented on GitHub (Sep 9, 2019):

поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка

Всего более сотни сериалов с лоста, обновляемых около десятка, помог совет по исправлению 510 и 511 строки ./monitorrent/plugins/trackers/lostfilm.py
Более ничего не пересоздавал, не удалял, но всё работает.

<!-- gh-comment-id:529263587 --> @jMurr commented on GitHub (Sep 9, 2019): > поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка Всего более сотни сериалов с лоста, обновляемых около десятка, помог совет по исправлению 510 и 511 строки ./monitorrent/plugins/trackers/lostfilm.py Более ничего не пересоздавал, не удалял, но всё работает.
Author
Owner

@Groznuy commented on GitHub (Sep 11, 2019):

Так же помогло исправление 510 и 511 строчки
я использую monitorrent в docker напишу сдесь как я исправил ету проблему, так как вот ета команда у меня не вишла :

Для тех кто в докере использует, тоже можно подправить:
docker exec monitorrent vi monitorrent/plugins/trackers/lostfilm.py

  1. "docker exec -it id_контейнера /bin/sh"
    1a. id контейнера можес узнать использовав ету команду "docker ps"
  2. ну а дальше вот ета команда "vi monitorrent/plugins/trackers/lostfilm.py +510"
  3. рестарт контейнера "docker restart id_контейнера"
<!-- gh-comment-id:530366831 --> @Groznuy commented on GitHub (Sep 11, 2019): Так же помогло исправление 510 и 511 строчки я использую monitorrent в docker напишу сдесь как я исправил ету проблему, так как вот ета команда у меня не вишла : > Для тех кто в докере использует, тоже можно подправить: > docker exec monitorrent vi monitorrent/plugins/trackers/lostfilm.py 1. "docker exec -it id_контейнера /bin/sh" 1a. id контейнера можес узнать использовав ету команду "docker ps" 2. ну а дальше вот ета команда "vi monitorrent/plugins/trackers/lostfilm.py +510" 3. рестарт контейнера "docker restart id_контейнера"
Author
Owner

@degorychev commented on GitHub (Sep 29, 2019):

Кто не может помириться с vi можете поставить другой редактор, nano или mcedit:

#apk update
#apk add mc
#mc

<!-- gh-comment-id:536315164 --> @degorychev commented on GitHub (Sep 29, 2019): Кто не может помириться с vi можете поставить другой редактор, nano или mcedit: >#apk update >#apk add mc >#mc
Author
Owner

@RazielMalah commented on GitHub (Oct 3, 2019):

поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка

Traceback (most recent call last):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute
episodes = self._prepare_request(topic)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request
show = self.tracker.parse_url(topic.url, True)
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url
for season in self._parse_series(soup):
File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in parse_series
serie_blocks = series_block.find_all('div', class
='serie-block')
AttributeError: 'NoneType' object has no attribute 'find_all'

Укажи в свойствах раздачи с какой серии какого сезона качать.

<!-- gh-comment-id:537900134 --> @RazielMalah commented on GitHub (Oct 3, 2019): > поменял дивы на заголовки как вы и писали) ошибка ушла для не обновленных торрентов. Но если же он обновился и нужно скачать серию то вылезает опять ошибка > > > Traceback (most recent call last): > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 736, in execute > > episodes = self._prepare_request(topic) > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 799, in _prepare_request > > show = self.tracker.parse_url(topic.url, True) > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 515, in parse_url > > for season in self._parse_series(soup): > > File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 524, in _parse_series > > serie_blocks = series_block.find_all('div', class_='serie-block') > > AttributeError: 'NoneType' object has no attribute 'find_all' Укажи в свойствах раздачи с какой серии какого сезона качать.
Author
Owner

@werwolfby commented on GitHub (Oct 24, 2019):

А мне фикс не помог :)

<!-- gh-comment-id:545748766 --> @werwolfby commented on GitHub (Oct 24, 2019): А мне фикс не помог :)
Author
Owner

@werwolfby commented on GitHub (Oct 24, 2019):

Хотя нет, таки помог

<!-- gh-comment-id:545753165 --> @werwolfby commented on GitHub (Oct 24, 2019): Хотя нет, таки помог
Author
Owner

@Akior commented on GitHub (Nov 4, 2019):

Только docker не забудьте

<!-- gh-comment-id:549237281 --> @Akior commented on GitHub (Nov 4, 2019): Только docker не забудьте
Author
Owner

@werwolfby commented on GitHub (Nov 4, 2019):

@Akior не забуду, просто это было не быстро 😞
Но появился общий контейнер werwolfby/monitorrent с обоими архитектурами

<!-- gh-comment-id:549253027 --> @werwolfby commented on GitHub (Nov 4, 2019): @Akior не забуду, просто это было не быстро 😞 Но появился общий контейнер `werwolfby/monitorrent` с обоими архитектурами
Author
Owner

@makar0nin commented on GitHub (Nov 4, 2019):

@werwolfby , вопрос не в тему , но раз обновление вышло, есть инструкция как обновить? а то этот процес в прошлый раз сбросил все отслеживания и нас тройки .

<!-- gh-comment-id:549253650 --> @makar0nin commented on GitHub (Nov 4, 2019): @werwolfby , вопрос не в тему , но раз обновление вышло, есть инструкция как обновить? а то этот процес в прошлый раз сбросил все отслеживания и нас тройки .
Author
Owner

@werwolfby commented on GitHub (Nov 4, 2019):

@makar0nin а как ставишь?
Просто любой апдейт должен проходить без проблем.
Для докера сохраняется база через волюм
Для Виндоус тоже просто, там сам апдейт должен мягко пройти

Если действительно есть проблемы, то нужна отдельная ишью с подробностями: как и куда ставишь, ось докер/инсталлер/сырцы

<!-- gh-comment-id:549257510 --> @werwolfby commented on GitHub (Nov 4, 2019): @makar0nin а как ставишь? Просто любой апдейт должен проходить без проблем. Для докера сохраняется база через волюм Для Виндоус тоже просто, там сам апдейт должен мягко пройти Если действительно есть проблемы, то нужна отдельная ишью с подробностями: как и куда ставишь, ось докер/инсталлер/сырцы
Author
Owner

@makar0nin commented on GitHub (Nov 4, 2019):

@werwolfby на Ubuntu 18.04 ставил просто из релизного архива , как обычный процесс утсановки в то же место где и предыдущая была.

<!-- gh-comment-id:549258207 --> @makar0nin commented on GitHub (Nov 4, 2019): @werwolfby на Ubuntu 18.04 ставил просто из релизного архива , как обычный процесс утсановки в то же место где и предыдущая была.
Author
Owner

@Groznuy commented on GitHub (Nov 4, 2019):

У меня например в докер контейнере и все настройки слетели.

<!-- gh-comment-id:549311662 --> @Groznuy commented on GitHub (Nov 4, 2019): У меня например в докер контейнере и все настройки слетели.
Author
Owner

@Akior commented on GitHub (Nov 4, 2019):

Если база вынесена во внешнее хранилище, все должно сохраниться
-v /path/to/monitorrent.db:/var/www/monitorrent/monitorrent.db

Я обновился без проблем, путь указан такой:
-v /opt/monitorrent/monitorrent.db:/var/www/monitorrent/monitorrent.db

<!-- gh-comment-id:549314821 --> @Akior commented on GitHub (Nov 4, 2019): Если база вынесена во внешнее хранилище, все должно сохраниться -v /path/to/monitorrent.db:/var/www/monitorrent/monitorrent.db Я обновился без проблем, путь указан такой: -v /opt/monitorrent/monitorrent.db:/var/www/monitorrent/monitorrent.db
Author
Owner

@makar0nin commented on GitHub (Nov 4, 2019):

Обновился вроде норм .

<!-- gh-comment-id:549315878 --> @makar0nin commented on GitHub (Nov 4, 2019): Обновился вроде норм .
Author
Owner

@Groznuy commented on GitHub (Nov 4, 2019):

у меня такое :

File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 630, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 453, in connect
    return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
(Background on this error at: http://sqlalche.me/e/e3q8)
<!-- gh-comment-id:549320449 --> @Groznuy commented on GitHub (Nov 4, 2019): у меня такое : ``` File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 630, in __connect connection = pool._invoke_creator(self) File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect return dialect.connect(*cargs, **cparams) File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 453, in connect return self.dbapi.connect(*cargs, **cparams) sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file (Background on this error at: http://sqlalche.me/e/e3q8) ```
Author
Owner

@Groznuy commented on GitHub (Nov 4, 2019):

ну пофиксил одним словом
почему то у меня была создана папка monitorrent.db а не файл.

<!-- gh-comment-id:549336215 --> @Groznuy commented on GitHub (Nov 4, 2019): ну пофиксил одним словом почему то у меня была создана папка monitorrent.db а не файл.
Author
Owner

@werwolfby commented on GitHub (Nov 4, 2019):

@Groznuy именно по этому в ридми написано сначала сделать touch monitorrent.db Иначе по дефолту волюм будет папкой

<!-- gh-comment-id:549526505 --> @werwolfby commented on GitHub (Nov 4, 2019): @Groznuy именно по этому в ридми написано сначала сделать `touch monitorrent.db` Иначе по дефолту волюм будет папкой
Author
Owner

@werwolfby commented on GitHub (Nov 4, 2019):

@makar0nin если ставил с архива, то нужно было сохранить monitorrent.db

<!-- gh-comment-id:549526863 --> @werwolfby commented on GitHub (Nov 4, 2019): @makar0nin если ставил с архива, то нужно было сохранить monitorrent.db
Author
Owner

@Groznuy commented on GitHub (Nov 4, 2019):

@werwolfby у меня в docker да и ещо под управлением portainer)

<!-- gh-comment-id:549532577 --> @Groznuy commented on GitHub (Nov 4, 2019): @werwolfby у меня в docker да и ещо под управлением portainer)
Author
Owner

@makar0nin commented on GitHub (Nov 5, 2019):

@werwolfby , уже понял. Обновил все нормально . Но думаю стоит внести краткую инструкцию по обновлению.

<!-- gh-comment-id:549699875 --> @makar0nin commented on GitHub (Nov 5, 2019): @werwolfby , уже понял. Обновил все нормально . Но думаю стоит внести краткую инструкцию по обновлению.
Author
Owner

@Groznuy commented on GitHub (Nov 5, 2019):

@makar0nin если monitorrent стоит в докер контейнере то я думаю стоит поставить контейнер watchtower он все делает автоматом(обновляет все докер контейнеры)ну ето у меня так

<!-- gh-comment-id:549711704 --> @Groznuy commented on GitHub (Nov 5, 2019): @makar0nin если monitorrent стоит в докер контейнере то я думаю стоит поставить контейнер watchtower он все делает автоматом(обновляет все докер контейнеры)ну ето у меня так
Author
Owner

@makar0nin commented on GitHub (Nov 5, 2019):

@Groznuy , развернут тупо в ubuntu 18.04 никаких контейнеров . Как писал выше обновил нормально. ЗАбекапил перед обновлением db навсякий случай и накатил в туже локацию

<!-- gh-comment-id:549762707 --> @makar0nin commented on GitHub (Nov 5, 2019): @Groznuy , развернут тупо в ubuntu 18.04 никаких контейнеров . Как писал выше обновил нормально. ЗАбекапил перед обновлением db навсякий случай и накатил в туже локацию
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
werwolfby/monitorrent#239
No description provided.