Size: a a a

2020 March 11

ДК

Даниил Козырев in SPb Python
но это не выходит
источник

ДК

Даниил Козырев in SPb Python
а вообще нечего не подгружается, код страница как-бы запущена
источник

Z

Zverev 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
У вас возникает ситуация при которой после обновление страницы элемент "обновляется". И когда вы бежите по первому циклу, после первого же прохода код find_elements_by_class_name('_dawz3y') теряет свою актуальность.
Вам каждый раз нужно заново искать элемент.
источник

ДК

Даниил Козырев in SPb Python
Как в selenium искать ссылку с атрибутами, то есть например _dawz3y с title="Кафе"
источник

G

Gorbushkaa in SPb Python
Даниил Козырев
Как в selenium искать ссылку с атрибутами, то есть например _dawz3y с title="Кафе"
Если ты имеешь ввиду "как найти элемент <a title="Кафе", href=...>, То ищи через xpath.
//a[contains(@title, "Кафе")]
источник

ДК

Даниил Козырев in SPb Python
спасибо, а как с помощью xpath достать элемент по ссылке
источник

G

Gorbushkaa in SPb Python
Можно более подробно вопрос) у тебя есть ссылка и на странице есть элемент содержащий эту ссылку. И ты хочешь получить этот элемент?
источник

Z

Zverev in SPb Python
Даниил Козырев
спасибо, а как с помощью xpath достать элемент по ссылке
find_element_by_xpath
источник

ДК

Даниил Козырев in SPb Python
Gorbushkaa
Можно более подробно вопрос) у тебя есть ссылка и на странице есть элемент содержащий эту ссылку. И ты хочешь получить этот элемент?
да, есть текст с ссылкой. Мне нужно узнать элемент по ссылке и кликнуть по нему
источник

G

Gorbushkaa in SPb Python
Ну также через xpath
//a[@href="your_link"]
источник
2020 March 12

ДК

Даниил Козырев in SPb Python
Gorbushkaa
Ну также через xpath
//a[@href="your_link"]
а можно вот так сделать?  for i in driver.find_elements_by_xpath('//a[@href="link"]'):
источник

ДК

Даниил Козырев in SPb Python
и потом i.click()
источник

G

Gorbushkaa in SPb Python
Теоретически да. Но ты всегда можешь попробовать запустить эти 2 строчки кода😉
источник

G

Gorbushkaa in SPb Python
Сложно сказать не видя верстки сайта и не зная целей. А так да, конструкция рабочая
источник

SM

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

SM

Serge Matveenko in SPb Python
Ну, и лабораторная работа
http://www.linuxfromscratch.org/lfs/
источник

SM

Serge Matveenko 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) Напиши баш скрипт, который на сервере будет обновлять твое приложение: скачивать обновления из гита, выполнять миграции, может быть что-то по статическим файлам надо будет делать.


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

SM

Serge Matveenko in SPb Python
Simon Osipov
Я бы выкинул правда редис, too much для начала, а вот баш скрипт деплоя заменил бы дженкинсом!/Тревисом.

Но это лишь моё мнение, в целом гайд очень хорош
Опять же. Баш скрипт нельзя заменить CI-ем. Нужно нечто, чем ты будешь деплоить: для начала можно и баш скрипт, потом ансибл.
Но есть или нет там CI/CD - это другой вопрос.
источник

MB

Max Block in SPb Python
Serge Matveenko
Я бы таки рекомендовал с redhat/centos начинать.
Сам я тоже начинал именно с redhat, который еще оригинальный был, не энтерпрайзный. По почте диски заказывал :)

Потом долго на серверах у меня была centos. Но в итоге сдался злу, и перешел на Ubuntu. Личные предпочтения у меня как раз за redhat/centos, но вот однозначно же доминирует убунта.

Выбор убунты обусловлен тем, что именно с убунтой будет больше шансов нагуглить готовое решение. Или я ошибаюсь, и fedora / centos хоть как-то распостранены? Да, на хостингах где предоставляют вдс-ки  / сервера, там всегда можно будет выбрать образ и федоры, и центоса.

Но вот когда читаешь какой-то гайд, туториал, аль проходишь какой-то платный видео курс, в 100% операционкой будет именно убунта. Но может быть это мне так просто все время везло? Я долгое время все делал на node.js, может быть убунта это только удел хипстеров, а в питоне реально  доминируют дистрибутивы redhat-семейства?
источник

ДК

Даниил Козырев in SPb Python
что не так в этой строке? driver.find_element_by_xpath("//span[contains(@title, 'Кафе')]")
источник