Имена тегов и классов выглядят так, словно они генерятся по какому-то алгоритму. Не факт, что после загрузки в response есть такой тег. попробуй не открывать URL в браузере, а сохранить загруженный контент в файл и посмотреть там.
с VPN не будут работать другие необходимые подключения, привязанные к ip и т.д.
С чего бы вдруг? VPN зачастую прописывает себя как default gateway (т.е. требует, чтобы весь трафик проходил через него), но это не обязательно. У меня сейчас OpenVPN так настроен - подключение есть, есть сервис на другой стороне, который я использую, но остальной трафик идёт как обычно, через домашенго провайдера.
CityCat4, если я верно понял, то проблема с установкой ПО на клиентские машины, а не на сервер. Почему и присоветовал встроенный VPN клиент. Тогда можно будет попробовать шару настроить, чтобы слушала только внутри VPN.
Serbli, тогда твоя команда должна была сработать. Я подозреваю, что порт 445 на клиентах уже занят соответствующей службой, и потому SSH-клиент не смог начать его слушать. На линуксах также есть ограничение - непривилигерованные процессы не могут слушать порты с номерами <1024. Верно ли это для Windows - неясно, четкого ответа я не могу найти. Может быть одной из причин проблемы.
Однако, есть варианты. Вроде начиная с windows 7 в винде есть встроенный VPN клиент. Если сумеешь подобрать и настроить сервер, который умеет работать по соответствующим протоколам - то можно будет поднять VPN без установки стороннего ПО. С родными микрософстовскими VPN-серверами я дела не имел, а из сторонних серверов вроде SoftEther умеет - он почти всеядный в этом плане, т.е. умеет цеплять клиентов по разным протоколам, в том числе этим.
Serbli, воот! windows-windows? Т.е. ssh сервер не держит шару сам?
Тогда неудивительно, что у тебя не сработало, так как ты пытался пробросить туннель до порта 445 на ssh сервере.
Ответь, хост-владелец сетевой шары доступен серверу напрямую, или он тоже должен быть туннелирован до сервера через ssh?
Ну для начала стоит выяснить, этот модуль мониторит введённые символы (которые зависят от текущей раскладки) или нажатые виртуальные клавиши (которые не зависят от раскладки)?
lutokris, чем проще тем быстрее, я думаю =) Специально не оптимизировал, но тут только эквивалент цикла с параметром, чтение элемента массива и присваивание элемента массива - без модификации длины списка, без создания срезов или других списков. Гипотетически можно было попробовать использовать array для дальнейшего прироста скорости (и возможно, выигрыша по памяти), но не уверен что будет выигрыш, да и с загрузкой будут проблемы: неизвестно насколько большие числа могут быть, неясно сколько их.
Алан Гибизов, просто у тебя запуск питоновского скрипта настроен так, что его начальная рабочая директория - это директория скрипта.
А у ОПа он, походу, настроен по-другому - у него начальная cwd это профиль пользователя.
Вообще cwd определяется запускающим процессом, и поэтому не вполне предсказуем на разных машинах и в разных ситуациях.
Так что если нужен файл именно рядом со скриптом - то лучше явно отталкиваться именно от пути до скрипта.
Приведенный код даст точно такое же поведение, так как относительный путь к файлу как раз и считается от cwd. =)
Надо было что-то типа my_root = Path(sys.argv[0]).parent ну и далее по тексту.
DollyPapper, ну если вопрос к реализации, то скорее всего через select(), хотя есть варианты. Под виндой своя специфика, там select() более ограничена, так как не умеет обрабатывать файлы. Например, в питоне есть разные реализации event loop на базе разных системных вызовов. Как это сделано в ноде или в браузерах - врать не буду, не знаю. =) Но можно посмотреть исходники.
TupaBan Dev, учись, если не понял.
Базовая идея там всего одна - ты делаешь отдельную функцию, которая должна выполняться параллельно с остальной программой, а потом используешь класс Thread, чтобы эту функцию выполнить.