Size: a a a

2020 March 10

ДК

Даниил Козырев in SPb Python
Спасибо
источник
2020 March 11

MB

Max Block in SPb Python
Голь перекатныя
Хорошо, спасибо всем за помощь
А лично я бы не начал сразу использовать докер. Полезнее вначале научиться деплоить свой софт на сервере без докера. И понимать, что и как работает.

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

И опять же я не рекомендовал бы новичкам ни хероку, ни aws, ничего такого. Лучше на виртуалку поставить листый линукс (например Ubuntu), и туда все ставить.

И можно еще купить дешевую вдс-ку. На дижитал оушине за 5 долларов, или на хецнере за 3 евро в месяц. И там играться.

И когда уже будет уверенное понимание что происходит при установке сервров руками, вот тогда и докер можно начать учить. А можно и не учить, можно и без него.
источник

SM

Serge Matveenko in SPb Python
Max Block
А лично я бы не начал сразу использовать докер. Полезнее вначале научиться деплоить свой софт на сервере без докера. И понимать, что и как работает.

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

И опять же я не рекомендовал бы новичкам ни хероку, ни aws, ничего такого. Лучше на виртуалку поставить листый линукс (например Ubuntu), и туда все ставить.

И можно еще купить дешевую вдс-ку. На дижитал оушине за 5 долларов, или на хецнере за 3 евро в месяц. И там играться.

И когда уже будет уверенное понимание что происходит при установке сервров руками, вот тогда и докер можно начать учить. А можно и не учить, можно и без него.
* докер — это просто необходимость сейчас. и локально с ним удобней девелопить сразу.
* vps можно взять и в gcp, и в aws прекрасно за 5 баксов.
* да, первым шагом взять docker-compose, например и им запускать на vps — вполне себе путь

но вот пройти квест GCP + K8s + Helm сразу тоже может быть забавно;) зайти немного с другой стороны, так сказать:)
источник

SM

Serge Matveenko in SPb Python
Max Block
А лично я бы не начал сразу использовать докер. Полезнее вначале научиться деплоить свой софт на сервере без докера. И понимать, что и как работает.

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

И опять же я не рекомендовал бы новичкам ни хероку, ни aws, ничего такого. Лучше на виртуалку поставить листый линукс (например Ubuntu), и туда все ставить.

И можно еще купить дешевую вдс-ку. На дижитал оушине за 5 долларов, или на хецнере за 3 евро в месяц. И там играться.

И когда уже будет уверенное понимание что происходит при установке сервров руками, вот тогда и докер можно начать учить. А можно и не учить, можно и без него.
имхо, трогать хост без докера — это огрести проблем с неоднозначно воспроизводимыми окружениям там, где этого можно избежать, зачем собственно докер и придумали
источник

MB

Max Block in SPb Python
Serge Matveenko
имхо, трогать хост без докера — это огрести проблем с неоднозначно воспроизводимыми окружениям там, где этого можно избежать, зачем собственно докер и придумали
я понимаю зачем нужен докер. но если человек себя и без докера неуверенно чувствует, то считаю что ему надо попрактиковаться на голой операционке.  может это я такой глупый, но мне докер не кажется примитивной штукой для изучения. я его понял далеко не за один вечер, хотя уже 20 лет с программированием и серверами знаком
источник

SM

Serge Matveenko in SPb Python
Max Block
я понимаю зачем нужен докер. но если человек себя и без докера неуверенно чувствует, то считаю что ему надо попрактиковаться на голой операционке.  может это я такой глупый, но мне докер не кажется примитивной штукой для изучения. я его понял далеко не за один вечер, хотя уже 20 лет с программированием и серверами знаком
у всех по-разному зашло. я как только потрогал, так сразу больше и расстаться не смог. там годный тутор.
источник

MB

Max Block in SPb Python
Serge Matveenko
у всех по-разному зашло. я как только потрогал, так сразу больше и расстаться не смог. там годный тутор.
А я с докером видел страшное. Я одно время по нему очень упарывался, и все делал в докере. И начал ставить эфирные ноды (это криптовалюта типа биткойна) тоже через докер.

И случилась проблема, которую ни я, ни кто-то еще на гитхабе эфириума решить не смог. Эфирные ноды, которые были установлены в докере, они примерно на 30% медленнее находили пиры (там p2p сеть). Т.е. дискавери с другими нодами был примерно на 30% медленнее, чем если эту же ноду поставить на голую систему.

А в бизнес-задаче эта проблема с медленным поиском пиров на 30% была критически важна.

Я делал специально тесты: на 10 серверах устанавливал эфирные ноды через докер, а а других 10 серверах — на голую убунту. И стабильно на всех 10 серверах, что были в докере, у них пиры искались медленнее. Никаких других проблем с докером не было (например блоки через уже найденные пиры качались с такой же скоростью),

А проблема эта страшна тем, что до нее никому кроме меня нет дела. Мол нода ж работает, в итоге все скачивает. А что медленно ищутся пиры, так p2p сети они вообще мутные.

Так я и не смог понять проблему, и в результате мне пришлось отказаться от докера, и админство автоматизировать через ansible. Который не добавляет новый уровень абстрации, где могут таиться странные вещи.

Хоть мне очень и нравится докер своей изоляцией.
источник

DM

Dmitriy Morozov in SPb Python
Max Block
А я с докером видел страшное. Я одно время по нему очень упарывался, и все делал в докере. И начал ставить эфирные ноды (это криптовалюта типа биткойна) тоже через докер.

И случилась проблема, которую ни я, ни кто-то еще на гитхабе эфириума решить не смог. Эфирные ноды, которые были установлены в докере, они примерно на 30% медленнее находили пиры (там p2p сеть). Т.е. дискавери с другими нодами был примерно на 30% медленнее, чем если эту же ноду поставить на голую систему.

А в бизнес-задаче эта проблема с медленным поиском пиров на 30% была критически важна.

Я делал специально тесты: на 10 серверах устанавливал эфирные ноды через докер, а а других 10 серверах — на голую убунту. И стабильно на всех 10 серверах, что были в докере, у них пиры искались медленнее. Никаких других проблем с докером не было (например блоки через уже найденные пиры качались с такой же скоростью),

А проблема эта страшна тем, что до нее никому кроме меня нет дела. Мол нода ж работает, в итоге все скачивает. А что медленно ищутся пиры, так p2p сети они вообще мутные.

Так я и не смог понять проблему, и в результате мне пришлось отказаться от докера, и админство автоматизировать через ansible. Который не добавляет новый уровень абстрации, где могут таиться странные вещи.

Хоть мне очень и нравится докер своей изоляцией.
Возможно (хоть я и совсем не уверен), дело в работе докера с сетью. Там много подводных камней и ограничений. Мы, например, один раз упёрлись в ограничение на 100 DNS-запросов в секунду в докере до 19 версии.
источник

SM

Serge Matveenko in SPb Python
Max Block
А я с докером видел страшное. Я одно время по нему очень упарывался, и все делал в докере. И начал ставить эфирные ноды (это криптовалюта типа биткойна) тоже через докер.

И случилась проблема, которую ни я, ни кто-то еще на гитхабе эфириума решить не смог. Эфирные ноды, которые были установлены в докере, они примерно на 30% медленнее находили пиры (там p2p сеть). Т.е. дискавери с другими нодами был примерно на 30% медленнее, чем если эту же ноду поставить на голую систему.

А в бизнес-задаче эта проблема с медленным поиском пиров на 30% была критически важна.

Я делал специально тесты: на 10 серверах устанавливал эфирные ноды через докер, а а других 10 серверах — на голую убунту. И стабильно на всех 10 серверах, что были в докере, у них пиры искались медленнее. Никаких других проблем с докером не было (например блоки через уже найденные пиры качались с такой же скоростью),

А проблема эта страшна тем, что до нее никому кроме меня нет дела. Мол нода ж работает, в итоге все скачивает. А что медленно ищутся пиры, так p2p сети они вообще мутные.

Так я и не смог понять проблему, и в результате мне пришлось отказаться от докера, и админство автоматизировать через ansible. Который не добавляет новый уровень абстрации, где могут таиться странные вещи.

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

SM

Serge Matveenko in SPb Python
Max Block
А я с докером видел страшное. Я одно время по нему очень упарывался, и все делал в докере. И начал ставить эфирные ноды (это криптовалюта типа биткойна) тоже через докер.

И случилась проблема, которую ни я, ни кто-то еще на гитхабе эфириума решить не смог. Эфирные ноды, которые были установлены в докере, они примерно на 30% медленнее находили пиры (там p2p сеть). Т.е. дискавери с другими нодами был примерно на 30% медленнее, чем если эту же ноду поставить на голую систему.

А в бизнес-задаче эта проблема с медленным поиском пиров на 30% была критически важна.

Я делал специально тесты: на 10 серверах устанавливал эфирные ноды через докер, а а других 10 серверах — на голую убунту. И стабильно на всех 10 серверах, что были в докере, у них пиры искались медленнее. Никаких других проблем с докером не было (например блоки через уже найденные пиры качались с такой же скоростью),

А проблема эта страшна тем, что до нее никому кроме меня нет дела. Мол нода ж работает, в итоге все скачивает. А что медленно ищутся пиры, так p2p сети они вообще мутные.

Так я и не смог понять проблему, и в результате мне пришлось отказаться от докера, и админство автоматизировать через ansible. Который не добавляет новый уровень абстрации, где могут таиться странные вещи.

Хоть мне очень и нравится докер своей изоляцией.
ну а с докером и сетью действительно может такое быть. software defined networking все-таки.
возможно runc мог помочь или k8s с какой-нибудь сетью побыстрее. или прямое использование сети хоста.
в общем. починить/ускорить, наверное можно, но то что докер накладывает дополнительлный слой в сеть - это правда.
а p2p небось еще и на udp? с этим в родной докерной сети всё не очень гладко.
можно было и роуты посмотреть. ну, это если упарываться, конечно
источник

Гп

Голь перекатныя in SPb Python
Max Block
А лично я бы не начал сразу использовать докер. Полезнее вначале научиться деплоить свой софт на сервере без докера. И понимать, что и как работает.

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

И опять же я не рекомендовал бы новичкам ни хероку, ни aws, ничего такого. Лучше на виртуалку поставить листый линукс (например Ubuntu), и туда все ставить.

И можно еще купить дешевую вдс-ку. На дижитал оушине за 5 долларов, или на хецнере за 3 евро в месяц. И там играться.

И когда уже будет уверенное понимание что происходит при установке сервров руками, вот тогда и докер можно начать учить. А можно и не учить, можно и без него.
Спасибо за совет, да, я понял что докер придется изучать, но после того как с набега с ним разобраться не удалось, думаю его оставить на тот момент когда разберусь с линуксом и серверами. Все же остается какая то прострация. Если я хочу что то развернуть, я нахожу пошаговые рецепты, но не могу найти где объясняются принципы и логика, как все это работает. Полагаю придется положиться на случайность, читать по теме (Линукс, работа сервера) все что найдется и надеяться, что подвернется что то дельное или однажды само сложится в цельную картину.
источник

MB

Max Block in SPb Python
Голь перекатныя
Спасибо за совет, да, я понял что докер придется изучать, но после того как с набега с ним разобраться не удалось, думаю его оставить на тот момент когда разберусь с линуксом и серверами. Все же остается какая то прострация. Если я хочу что то развернуть, я нахожу пошаговые рецепты, но не могу найти где объясняются принципы и логика, как все это работает. Полагаю придется положиться на случайность, читать по теме (Линукс, работа сервера) все что найдется и надеяться, что подвернется что то дельное или однажды само сложится в цельную картину.
Чтобы сложилась картина целиком по деплою, можешь выполнить полностью такой обучающий таск:

1) Настраиваешь линукс сервер, пусть это будет Ubuntu. И лучше живой, в виде vds-ки за 5 баксов в месяц.  Допустим надо там установить таймзону UTC и файрволом закрыть все порты кроме 22, 80, 443
2) Ставишь последнюю стабильную версию питона туда. Учишься ставить питон из apt пакетов
3) Ставишь последнюю версию базы данных. PostgreSQL или MongoDB. Если еще не определился, то лучше делай все на PostgreSQL
4) Сделай так, чтобы доступ к базе был бы строго по паролю.
5) Опционально если у тебя в веб приложении есть кеш, ставь сервер Redis
6) Для упрощения само веб приложение устанавливаешь через git clone url/to/repo/on/github/for-example
7) Само веб приложение (на фласке или джанге) устанавливашеь в virtualenv, чтобы не конфликтовать пакетами с системой
8) Ставишь reverse proxy в виде nginx. Статику отдавать должен nginx, а твое питонячье приложение из внешнего мира вообще не должно быть видно.
9) покупаешь домен (самый дешевый, есть зоны меньше доллара), привязываешь его на хостинг
10) Через letsencrypt делаешь доступ по https
11) Делаешь запуск своего веб приложения через systemd
12) Настраиваешь systemd модуль приложения так, чтобы оно автоматом запустилось бы после ребута сервера
13) В своем веб приложеннии напиши сделай миграцию по базе данных, и запусти эту миграцию на сервере.
14) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


И вот когда все это ты научишься делать легко и с понимание что вообще происходит, вот тогда уже можно и докер потрогать.
источник

Гп

Голь перекатныя in SPb Python
Max Block
Чтобы сложилась картина целиком по деплою, можешь выполнить полностью такой обучающий таск:

1) Настраиваешь линукс сервер, пусть это будет Ubuntu. И лучше живой, в виде vds-ки за 5 баксов в месяц.  Допустим надо там установить таймзону UTC и файрволом закрыть все порты кроме 22, 80, 443
2) Ставишь последнюю стабильную версию питона туда. Учишься ставить питон из apt пакетов
3) Ставишь последнюю версию базы данных. PostgreSQL или MongoDB. Если еще не определился, то лучше делай все на PostgreSQL
4) Сделай так, чтобы доступ к базе был бы строго по паролю.
5) Опционально если у тебя в веб приложении есть кеш, ставь сервер Redis
6) Для упрощения само веб приложение устанавливаешь через git clone url/to/repo/on/github/for-example
7) Само веб приложение (на фласке или джанге) устанавливашеь в virtualenv, чтобы не конфликтовать пакетами с системой
8) Ставишь reverse proxy в виде nginx. Статику отдавать должен nginx, а твое питонячье приложение из внешнего мира вообще не должно быть видно.
9) покупаешь домен (самый дешевый, есть зоны меньше доллара), привязываешь его на хостинг
10) Через letsencrypt делаешь доступ по https
11) Делаешь запуск своего веб приложения через systemd
12) Настраиваешь systemd модуль приложения так, чтобы оно автоматом запустилось бы после ребута сервера
13) В своем веб приложеннии напиши сделай миграцию по базе данных, и запусти эту миграцию на сервере.
14) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


И вот когда все это ты научишься делать легко и с понимание что вообще происходит, вот тогда уже можно и докер потрогать.
ого, за такой подробный план отдельное  мучас грасиас! =)
источник

Гп

Голь перекатныя in SPb Python
Max Block
Чтобы сложилась картина целиком по деплою, можешь выполнить полностью такой обучающий таск:

1) Настраиваешь линукс сервер, пусть это будет Ubuntu. И лучше живой, в виде vds-ки за 5 баксов в месяц.  Допустим надо там установить таймзону UTC и файрволом закрыть все порты кроме 22, 80, 443
2) Ставишь последнюю стабильную версию питона туда. Учишься ставить питон из apt пакетов
3) Ставишь последнюю версию базы данных. PostgreSQL или MongoDB. Если еще не определился, то лучше делай все на PostgreSQL
4) Сделай так, чтобы доступ к базе был бы строго по паролю.
5) Опционально если у тебя в веб приложении есть кеш, ставь сервер Redis
6) Для упрощения само веб приложение устанавливаешь через git clone url/to/repo/on/github/for-example
7) Само веб приложение (на фласке или джанге) устанавливашеь в virtualenv, чтобы не конфликтовать пакетами с системой
8) Ставишь reverse proxy в виде nginx. Статику отдавать должен nginx, а твое питонячье приложение из внешнего мира вообще не должно быть видно.
9) покупаешь домен (самый дешевый, есть зоны меньше доллара), привязываешь его на хостинг
10) Через letsencrypt делаешь доступ по https
11) Делаешь запуск своего веб приложения через systemd
12) Настраиваешь systemd модуль приложения так, чтобы оно автоматом запустилось бы после ребута сервера
13) В своем веб приложеннии напиши сделай миграцию по базе данных, и запусти эту миграцию на сервере.
14) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


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

MB

Max Block in SPb Python
хетцнер клауд, за 3 евро хватит для тестов. это просто вдс-ка обычная
источник

SO

Simon Osipov in SPb Python
Max Block
Чтобы сложилась картина целиком по деплою, можешь выполнить полностью такой обучающий таск:

1) Настраиваешь линукс сервер, пусть это будет Ubuntu. И лучше живой, в виде vds-ки за 5 баксов в месяц.  Допустим надо там установить таймзону UTC и файрволом закрыть все порты кроме 22, 80, 443
2) Ставишь последнюю стабильную версию питона туда. Учишься ставить питон из apt пакетов
3) Ставишь последнюю версию базы данных. PostgreSQL или MongoDB. Если еще не определился, то лучше делай все на PostgreSQL
4) Сделай так, чтобы доступ к базе был бы строго по паролю.
5) Опционально если у тебя в веб приложении есть кеш, ставь сервер Redis
6) Для упрощения само веб приложение устанавливаешь через git clone url/to/repo/on/github/for-example
7) Само веб приложение (на фласке или джанге) устанавливашеь в virtualenv, чтобы не конфликтовать пакетами с системой
8) Ставишь reverse proxy в виде nginx. Статику отдавать должен nginx, а твое питонячье приложение из внешнего мира вообще не должно быть видно.
9) покупаешь домен (самый дешевый, есть зоны меньше доллара), привязываешь его на хостинг
10) Через letsencrypt делаешь доступ по https
11) Делаешь запуск своего веб приложения через systemd
12) Настраиваешь systemd модуль приложения так, чтобы оно автоматом запустилось бы после ребута сервера
13) В своем веб приложеннии напиши сделай миграцию по базе данных, и запусти эту миграцию на сервере.
14) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


И вот когда все это ты научишься делать легко и с понимание что вообще происходит, вот тогда уже можно и докер потрогать.
Я бы выкинул правда редис, too much для начала, а вот баш скрипт деплоя заменил бы дженкинсом!/Тревисом.

Но это лишь моё мнение, в целом гайд очень хорош
источник

DI

Danil Ivanov in SPb Python
Max Block
Чтобы сложилась картина целиком по деплою, можешь выполнить полностью такой обучающий таск:

1) Настраиваешь линукс сервер, пусть это будет Ubuntu. И лучше живой, в виде vds-ки за 5 баксов в месяц.  Допустим надо там установить таймзону UTC и файрволом закрыть все порты кроме 22, 80, 443
2) Ставишь последнюю стабильную версию питона туда. Учишься ставить питон из apt пакетов
3) Ставишь последнюю версию базы данных. PostgreSQL или MongoDB. Если еще не определился, то лучше делай все на PostgreSQL
4) Сделай так, чтобы доступ к базе был бы строго по паролю.
5) Опционально если у тебя в веб приложении есть кеш, ставь сервер Redis
6) Для упрощения само веб приложение устанавливаешь через git clone url/to/repo/on/github/for-example
7) Само веб приложение (на фласке или джанге) устанавливашеь в virtualenv, чтобы не конфликтовать пакетами с системой
8) Ставишь reverse proxy в виде nginx. Статику отдавать должен nginx, а твое питонячье приложение из внешнего мира вообще не должно быть видно.
9) покупаешь домен (самый дешевый, есть зоны меньше доллара), привязываешь его на хостинг
10) Через letsencrypt делаешь доступ по https
11) Делаешь запуск своего веб приложения через systemd
12) Настраиваешь systemd модуль приложения так, чтобы оно автоматом запустилось бы после ребута сервера
13) В своем веб приложеннии напиши сделай миграцию по базе данных, и запусти эту миграцию на сервере.
14) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


И вот когда все это ты научишься делать легко и с понимание что вообще происходит, вот тогда уже можно и докер потрогать.
👍
источник

ДК

Даниил Козырев in SPb Python
Всем привет, нужна помощь в selenium. Вот такая ошибка:
Traceback (most recent call last):
 File "E:\python\Company\start.py", line 24, in <module>
   i.click()
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
   self._execute(Command.CLICK_ELEMENT)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
   return self._parent.execute(command, params)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
   self.error_handler.check_response(response)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
   raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
 (Session info: chrome=80.0.3987.132)

Код:
https://pastebin.com/vBM2wBEn
источник

MB

Max Block in SPb Python
Даниил Козырев
Всем привет, нужна помощь в selenium. Вот такая ошибка:
Traceback (most recent call last):
 File "E:\python\Company\start.py", line 24, in <module>
   i.click()
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
   self._execute(Command.CLICK_ELEMENT)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
   return self._parent.execute(command, params)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
   self.error_handler.check_response(response)
 File "C:\Users\MrMelsik\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
   raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
 (Session info: chrome=80.0.3987.132)

Код:
https://pastebin.com/vBM2wBEn
Судя по ошибке, ты запрашиваешь такие элементы, которых еще не существует на странице (они не загрузились, и скорее всего они динамически подгружаются).

https://selenium-python.readthedocs.io/waits.html
— вот про такие штуки почитай, они дождутся нужных элементов без эксепшинов

З.Ы. Эпичный у тебя там код, особенно строка:

while r == r:
  …
источник

ДК

Даниил Козырев in SPb Python
Max Block
Судя по ошибке, ты запрашиваешь такие элементы, которых еще не существует на странице (они не загрузились, и скорее всего они динамически подгружаются).

https://selenium-python.readthedocs.io/waits.html
— вот про такие штуки почитай, они дождутся нужных элементов без эксепшинов

З.Ы. Эпичный у тебя там код, особенно строка:

while r == r:
  …
это я пытаюсь сделать, что-бы код просто постоянно повторяюсь
источник