Ответы пользователя по тегу Python
  • Как вывести список всех компьютеров в пределах диапазона из Active Directory?

    @rPman
    Лучше использовать для этого штатные утилиты командной строки или скрипт powershell (код будет проще), например
    $ip = "192.168.1.1"
    
    # получить dns имя по ip
    [System.Net.Dns]::GetHostEntry($ip).HostName
    
    # получить операционную систему по ip
    # права у текущего пользователя должны быть достаточными
    $creds = Get-Credential
    
    Invoke-Command -ComputerName $ip -Credential $creds {
        Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption, Version
    }

    p.s. по уму wmi есть и для python но код точно будет многословным (попроси chatgpt он тебе нарисует или нагугли)
    p.s.
    wmi
    или ldap3
    Ответ написан
    Комментировать
  • Какие пакеты лучше использовать для написания программы?

    @rPman
    Управление удаленным браузером - selenium или самому использовать механим управления браузером по сети (у firefox это marionette, у хромиум кажется через --remote-debugging-port свой, собственно драйвера selemium их и используют, унифицируя)
    Ответ написан
  • Почему скорость работы асинхронного кода снижается?

    @rPman
    Скажи, о каких скоростях идет до и после повышения количества доменов?
    Что показывает нагрузка на процессор (асинхронный код использует в основном только одно ядро).

    Добавь подсчет количества запросов в секунду на каком то разумном интервале (например 1..10сек), по коду это просто переменная, которую увеличиваешь на 1 с каждым запросом и сбрасываешь, если остаток от деления текущего времени в timestamp на интервал в секундах изменилось, с последнего вывода, ну и выводишь значение переменной, поделив на этот же интервал.

    И главный вопрос, а с чего ты взял что сайт ifconfig.me будет отвечать тебе с бесконечной скоростью? Почти наверняка ты упираешься в какие то лимиты и тебе понижают количество запросов в секунду, через некоторое время лимит сбрасывается и твои тесты с малым количеством запросов работают быстрее.
    Ответ написан
  • Как убрать задержку в WebSockets?

    @rPman
    Это не вебсокет вносит задержки, а телеграм. Задержки в рассылке сообщений клиентам у него доходят до нескольких минут, это не исправить, клиенты должны сами подключаться к тому же серверу что и бот, управлять этим невозможно.
    Ответ написан
    Комментировать
  • Как генерировать файлы и записывать в них информацию в цикле?

    @rPman
    open в качестве первого параметра принимает имя файла, сейчас у тебя там строка константа, замени ее на код, который будет формировать имя файла, например из чисел x1...x5, соответственно передавай эти числа в функцию, в которой этот open вызывается
    Ответ написан
  • Существует ли таймер которым можно управлять с другого компьютера?

    @rPman
    Слишком 'простая' задача, чтобы для нее был готовый инструмент, может только как часть бОльшего...

    Напиши сам или закажи у других. Современные телевизоры уже давно умные, в крайнем случае можно приобрести у китайцев за 1-2т.р. мини ПК в формате hdmi-stick (чуть больше usb флешки) так же почти любой смартфон может транслировать изображение на TV по wifi. Т.е. 'запустить браузер на TV' не проблема. Удаленное управление - вопрос того от куда и как именно нужно это делать.
    Ответ написан
    Комментировать
  • Selenium не видит мой webdriver,что делать?

    @rPman
    С высокой вероятностью причина - русские буквы в пути.

    Размести драйвер в другом каталоге, не содержащем русские буквы (можно создать символическую ссылку на каталог в другом месте)
    Ответ написан
  • Как вывод команды help в терминал передать в переменную?

    @rPman
    подмени stdout на свою строку на время работы help и dir и потом обратно, с помощью io
    import io
    import sys
    # Create a text buffer object
    buffer = io.StringIO()
    # Redirect stdout to the buffer
    sys.stdout = buffer
    # Call the help function
    help(object)
    # Reset stdout to default
    sys.stdout = sys.__stdout__
    # Get the string value from the buffer
    help_in_string_format = buffer.getvalue()
    # You can now use the string variable as required.
    print(help_in_string_format)

    p.s. очень удобно пользоваться chatgpt когда задачи простые и ты понимаешь как их решать, он берет на себя кучу скучной и не интересной работы
    Ответ написан
  • Как запустить обучение с deepspeed у себя на пк?

    @rPman
    deepspeed это про обучение на кластере, т.е. вместо покупки одной дорогой серверной видеокарточки, ты поднимаешь кластер из дешевых десктопных и по уму должен получить экономию в деньгах.
    Ответ написан
  • Как пройти авторизацию на youtube с помощью selenium?

    @rPman
    Сам давно не ковырялся в гугловских формах, но то что я знаю, это то что они собаку съели на борьбе с автоматизацией.

    Могу дать совет, ищи нужные элементы не css-селектором, а по содержимому и размещению.

    Просканируй DOM элементы на их getBoundingClientRect() и игнорируя все что нулевого размера (это невидимые) выявляй все что видимо в нужных местах и относительное положение.
    Ответ написан
    2 комментария
  • Работа с txt в python. Как работать с редактированием строк?

    @rPman
    Используй утилиту cut, она идеально подходит для решения твоей задачи
    cut --delimiter=; --fields=1 input_file.csv
    Результат будет выведен в консоль, можно перенаправить в фай, добавив в конец строки
    > out_file.txt
    Ответ написан
    Комментировать
  • Есть ли у биржи DeDust API для python?

    @rPman
    у них же на github есть что то
    https://github.com/dedust-io/sdk
    https://docs.dedust.io/reference/getting-available...

    p.s. сам этим не пользовался
    Ответ написан
    3 комментария
  • Как сделать стабильный загрузчик видео?

    @rPman
    yt-dlp

    И бодаться с гугловскими системами противодействия автоматизаций.

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

    p.s. почти наверняка есть официально платные услуги по доступу к данным, но наверное задорого и не доступно публично. Компания не зря тратила годами сотни миллионов баксов убытков чтобы стать монополистом по хранению и доступу к видеоконтенту, а на фоне последних веяний 'данные - новое золото' с целью обучения ИИ, отдавать данные просто так гугл точно не будет.
    Ответ написан
    4 комментария
  • Как узнать, был ли изменен файл?

    @rPman
    два направления:
    * первый периодические опросы 'времени последнего изменения' с помощью os.path.getctime(path), если время изменилось - значит файл был изменен (речь о командах на запись но содержимое не проверяется).
    Достоинства - простота, высокая скорость, если количество отслеживаемых файлов мало (до сотни).
    Недостаток - низкая оперативность изменений, определяется интервалом опроса

    * второй, подписаться на события изменений файла в файловой системе средствами ОС, они отличаются в каждой свои (например для linux гугли библиотеки python inotify). Можно вместо своей реализации использовать готовые утилиты (в linux inotify/inoticoming/incron/...)
    Достоинства - высокая оперативность и скорость реакции на изменения, можно отслеживать изменения в огромном количестве файлов, очень подробная информация о действиях (например можно получить события о том что файл кем то был открыт и его читают)
    Недостатки - сложность реализации, зависимость реализации от операционной системы.

    p.s. Внимание, в зависимости от выбранного метода и операционной системы возможны неожиданные последствия попыток отслеживания файлов по символическим и жестким ссылкам (можно пропускать события изменений, вопрос не изучал но нужны тесты)
    Ответ написан
    Комментировать
  • Как открывать браузер у конкретного пользователя?

    @rPman
    ты пишешь телеграм бот и хочешь чтобы браузер у пользователя открывался по твоему желанию?
    никак, иначе это была бы дыра приватности (вычислить ip клиента) и для фишинга
    Ответ написан
  • Как парсить курсы валют с биржи dedust?

    @rPman
    Не совсем верный используешь метод, содержимое страницы формируется на javascript в браузере, твой 'прелестный суп' так не умеет.

    Могу предположить что цены там тупо берутся тут https://api.dedust.io/v2/prices (этот запрос раз в 3 секунды идет со страницы)
    Ответ написан
    2 комментария
  • Почему появляется ошибка Sqlite3.OperationalError: table users has no column named name?

    @rPman
    Что за одинарная ковычка после скобки
    CREATE TABLE IF NOT EXISTS users (' <---
    и она же идет в конце списка описания полей

    т.е. sqlite создает таблицу с единственным полем, имя которого
    id INTEGER auto_increment P...EXT, email TEXT, trip TEXT, seek TEXT, extra TEXT
    прямо так со всеми запятыми и пробелами

    Ну и само собой, пользуйся удобными GUI для sqlite их много, там сразу все поймешь
    Ответ написан
  • Почему выдается ошибка sql во время импорта данных?

    @rPman
    Access denied for user
    пользователю (в mysql это пара 'юзер%хост') не выданы права на вызов insert, 'обратитесь к вашему администратору базы данных', вполне возможно пользователь был верно настроен для создания резервной копии (требуется только чтение) а на модификации нет
    Ответ написан
    Комментировать
  • Как собрать исполняемый файл nuitka из под windows на macos и linux?

    @rPman
    Это называется кросскомпиляция, формально она возможна, так как промежуточно nuitka генерирует c++ код, и его уже после компилирует с помощью gcc, который в свою очередь умеет и разные архитектуры и разные ос (с оговорками).

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

    Нужный тебе issue все еще открыт, но там обсуждают как это сделать.
    Ответ написан
    Комментировать
  • Как можно шифроваться от сайтов при использовании selenium?

    @rPman
    по типу гугла
    гугл один из сложнейших сайтов для автоматизации, они защищаются от ботов десятилетиями

    Правильно, авторизуешься вручную с сохранением авторизации и переносишь куки в профиль браузера, используемого в selenium

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

    Если защиты нет то элементы ищутся легко тем же css - document.querySelector('css selector'), полученный объект можно менять типа .value='текст' а ссылки и кнопки кликать .click()
    Ответ написан
    1 комментарий