Python Новичок, ну простейшие вещи selenium за тебя сделает - куки примет, заголовки типа User-Agent правильные отправит. Но фз чего там гугл наворотил - таких ботов-спамеров на ютубе уже полно. Так что не следует ожидать, что всё прямо сходу заработает, и что учётку через месяц не забанят.
сергей кузьмин, я подозреваю, что InstallAllUsers=0.
Если питон ставится в профиль пользователя, то путь придётся определять по переменным окружения. Впрочем, это всё равно должно быть выполнимо.
Нам нужно найти проекцию анализируемой точки (x0; y0) на отрезок (x1;y1)-(x2;y2) маршрута. Тогда мы сможем понять, лежит ли эта проекция на отрезке. Если лежит, то расстояние от точки до проекции - это расстояние от точки до отрезка. Если не лежит, то расстояние от точки до отрезка - это расстояние от точки до ближайшего конца отрезка. В целом алгоритм примерно таков:
1. Выбираешь две соседние точки из маршрута.
2. Составляешь уравнение прямой. проходящей через эти точки. Обычно оно имеет вид (x - x1) / (x2 - x1) = (y - y1) / (y2 - y1), где две точки - (x1;y1) и (x2;y2).
Но лучше, если переведёшь его в каноническую форму вида Ax+By+C=0.
3. Из канонического уравнения можно узнать нормальный (перпендикулярный) вектор к прямой. Он будет иметь вид N = (A;B), где A и B - коэффициенты из уравнения выше.
4. У тебя получается уравнение прямой, перпендикулярной к нашему отрезку. Оно будет иметь вид (x - x0) / A = (y - y0) / B, где (x0;y0) - это точка, расстояние до которой мы хотим найти.
5. У нас два уравнения прямых. Точка пересечения (точка проекции) будет удовлетворять им обоим, так что надо решить систему.
Bx - Ay - B*x0 + A*y0 = 0
Ax + By + C=0
Система должна иметь одно решение (x;y).
6. Находишь t = (x - x1) / (x2 - x1) = (y - y1) / (y2 - y1) Какое из двух выбрать - зависит от направления прямой. Если прямая вертикальна (x2 - x1) ~= 0, то лучше взять y, и наоборот. t покажет, где на отрезке находится проекция искомой точки.
t = [0...1] - проекция на отрезке. Расстояние от точки до отрезка - это расстояние от (x0;y0) до (x;y).
t < 0 - проекция лежит до начала отрезка. Расстояние от точки до отрезка - это расстояние от (x0;y0) до (x1;y1).
t > 1 - проекция лежит за концом отрезка. Расстояние от точки до отрезка - это расстояние от (x0;y0) до (x2;y2).
Это полное описание, думаю, алгоритм можно упростить.
Кроме того, если длина отрезка (x1;y1)-(x2;y2) мала в сравнении с максимальным допустимым расстоянием до точки (x0;y0), то можно вообще ей пренебречь, и считать расстояние от точки до любого конца отрезка.
Uno di Palermo, ну не то чтобы вредно, но зачем? Если объект wikiart не пригоден к повторному использованию, то тогда да, его нужно создать заново. А если пригоден, то почему бы не использовать его для всех загрузок? Незачем делать лишнюю работу.
Ага, уже лучше. А ничего не работает - это как? Ошибка при установке? Успешная установка, но ошибка при импорте?
Успешный импорт, но ошибка при выполнении кода?
Приведи код (если есть) и текст ошибки.
Что ты понимаешь под "face recognition", и причём тут VS?
Face recognition - это название для семейства технологий, если речь про конкретное ПО/библиотеку, назови её и дай ссылку.
Алан Гибизов, это удобнейшая фича numpy.
Выражение a == 1 вернёт массив из логических элементов такого же размера, как и a. Каждый элемент будет содержать результат сравнения соответствующего элемента a с единицей.
А далее используется тот факт, что в питоне int(True) == 1. Тогда сумма элементов логического массива будет равна количеству истинных элементов в нём.
Александр Ананченко, а. Т.е. это просто в посте опечатка. У тебя второй параметр вместо port написано IP, вот я и подумал что ты не то передаёшь.
Просто для надёжности уточню: точно ли на целевом хосте 95.181.157.90:21 поднят FTP и точно ли он доступен из внешней сети? Другие клиенты коннектятся?
Алексей, у тебя certbot и веб-сервер на одной и той же машине крутятся? Если да, то порты тут ни причём - лишь бы запрос снаружи доходил до веб-сервера.
А вот если на разных, то всё грустно. Либо разбираться, как делать DNS challenge - но это требует программирования, чтобы дергать API твоего DNS провайдера.
Либо исхитряться, и монтировать каталог с одной машины на другую по сети.
Честно, проще завести certbot там же, где веб-сервер.
Алексей, через конфиг - это один способ. Я использую lighttpd + dehydrated (клиент для letsencrypt), но принцип, имхо, один и тот же.
Например, в конфиге lighttpd у меня есть строка
которая редиректит все challenge-запросы в директорию, с которой работает dehydrated.
Но имхо то же самое можно было бы сделать, поместив в /var/www/.well-known симлинк по имени acme-challenge, указывающий на каталог /home/letsencrypt/dehydrated/.acme-challenges .
Конечная цель одна - чтобы HTTP-запрос по URL /.well-known/acme-challenge/чтототам добирался до каталога, с которым работает твой certbot.
И да, ты засветил токен от своего бота, с чем тебя и поздравляю.