Ответы пользователя по тегу Python
  • Как получить контент скрытого элемента через Selenium?

    1. Ткнуть селениумом на кнопку (картинку).
    2. Дождаться появления нужного div (см. Expected Conditions)
    3. Получить содежимое div.
    Ответ написан
    Комментировать
  • Как верно настроить вероятность в мини - игре?

    Один раз, после первого шага в пересоздаёшь поля, пока не получится то поле, где в первом шаге есть проигрыш. Это понятно?
    Ответ написан
    Комментировать
  • Как в FastApi через метод POST реализовать все методы (GET,POST,PUT,DELETE)?

    В вопрос же про серверную часть?
    Разве в вашем вопросе нет готового ответа?
    Просто обработчик POST-запросов парсит входящий json, смотрит, какой там ACTION и соответственно действует.

    Что именно тут не понятно? Как json парсить? Как создать функцию, вызываемую при POST-запросе? Или что-то ещё?
    Ответ написан
    Комментировать
  • Как модифицировать GET запрос Selenium на Python?

    Я решаю аналогичные задачи с помощью selenium-wire:

    Features
    ~~~~~~~~

    * Pure Python, user-friendly API
    * HTTP and HTTPS requests captured
    * Intercept requests and responses
    * Modify headers, parameters, body content on the fly
    * Capture websocket messages
    * HAR format supported
    * Proxy server support
    Ответ написан
    Комментировать
  • Почему вылазиет ошибка?

    Ошибка в кодировке. Вам нужно открыть файл в нужной кодировке. По умолчанию используется UTF-8, но, очевидно, здесь нужна не она.

    Откройте файл и посмотрите глазками заголовки. Кодировки обычно пишут где-то в начале.

    Если не можете разобраться, поищите в интернетах сервисы по словам "определить кодировку".

    PS. Заголовок вопроса некорректный.
    Вместо "Почему не выводиться текст?" нужно что-то типа "Почему текст печатается некорректно (кракозябрами)?"
    Ответ написан
    Комментировать
  • Как использовать Python requests с дополнительными IP сервера?

    Отсюда

    import requests
    
    
    def session_for_src_addr(addr: str) -> requests.Session:
        """
        Create `Session` which will bind to the specified local address
        rather than auto-selecting it.
        """
        session = requests.Session()
        for prefix in ('http://', 'https://'):
            session.get_adapter(prefix).init_poolmanager(
                # those are default values from HTTPAdapter's constructor
                connections=requests.adapters.DEFAULT_POOLSIZE,
                maxsize=requests.adapters.DEFAULT_POOLSIZE,
                # This should be a tuple of (address, port). Port 0 means auto-selection.
                source_address=(addr, 0),
            )
    
        return session
    
    
    # usage example:
    s = session_for_src_addr('192.168.1.12')
    s.get('https://httpbin.org/ip')
    Ответ написан
    Комментировать
  • Как отсортировать массив по изначальному массиву?

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

    Судя по systemd вы в линуксе? Значит у вас os.system(command) вернёт exit code, который при нормальном завершении равен нулю.

    import os
     
    while True:
        exit_code = os.system("python3 script.py")  # Возможно тут следует написать полные пути
        if exit_code == 0:
            print("success!")
            break
        print(f"exit_code is {exit_code}, will retry")

    А systemd это уже ближе к администрированию целой системы. Это фоновые сервисы и задачи, и т. п.
    Ответ написан
    Комментировать
  • Как к отдельному элементу приписать индекс?

    items = [ch1, ch2, ch3, ch4]
    ch = items[a]

    Только обратите внимание, индексы начинаются с нуля.
    Ответ написан
    Комментировать
  • Как разделить фото через каждые n пикселей?

    Можно воспользоваться imagemagick. Без python.
    convert -crop 2000x2000 input.png %03d.png
    Ответ написан
  • Почему json.load считает текстовое представление цифр валидным json?

    По первому вопросу из wiki:

    В качестве значений в JSON могут быть использованы:

    1. запись — это неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки «{ }». Ключ описывается строкой, между ним и значением стоит символ «:». Пары ключ-значение отделяются друг от друга запятыми. Пример: {"hasBrain": false", "name": "Zombie"}
    2. массив (одномерный) — это упорядоченное множество значений. Массив заключается в квадратные скобки «[ ]». Значения разделяются запятыми. Массив может быть пустым, то есть не содержать ни одного значения. Значения в пределах одного массива могут иметь разный тип. Пример: [1, 2, "a", 7, true, {"a": "b"}]
    3. число (целое или вещественное). Пример: -11.2
    4. литералы true (логическое значение «истина»), false (логическое значение «ложь») и null.
    5. строка — это упорядоченное множество из нуля или более символов юникода, заключённое в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «\» (поддерживаются варианты \", \\, \/, \t, \n, \r, \f и \b), или записаны шестнадцатеричным кодом в кодировке Unicode в виде \uFFFF. Пример: "asdasd"


    "60" - это пункт 5
    aa - это никакой из пунктов.

    По второму вопросу:
    1. Если json.load вызвал ошибку то это точно не json.
    2. Но любой json это строка по определению, потому что это текстовый формат данных.
    Ответ написан
    Комментировать
  • Как перейти к определённой строчке кода в python?

    Смысл такой:
    while True:   # вечный цикл
        try:
            # действия
            break # выход из цикла, если действия прошли успешно
        except Exception:
            pass # В случае ошибки ничего не делать.
            # Или вместо pass написать continue, чтобы было очевидно,
            # что надо сразу перейти к следующей итерации.


    А вообще, надо бы учитывать количество попыток и ловить конкретное, а не общее исключение.
    Ответ написан
    1 комментарий
  • Как сделать ссылку на Телеграм Бота с командой?

    Сразу оговорюсь: я не помню, работает ли это, если диалог с ботом уже начат.

    https://tlgrm.ru/docs/bots#deep-linking

    Боты имеют механизм внешнего связывания, которые позволяет передать дополнительные параметры при запуске. Например, для передачи авторизационного токена пользователя, чтобы соединить его аккаунт с каким-либо внешним сервисом.

    У каждого робота есть ссылка, при помощи которой можно начать с ним диалог — https://t.me/<имя бота>. К этой ссылке можно добавить параметры *start или startgroupсо значением длиной до 64 символов. Пример:

    https://t.me/triviabot?startgroup=test

    Допустимо использование символов A-Z, a-z, 0-9, _ и -. Мы рекомендуем использовать base64url для кодирования параметров.

    Переход по ссылке с параметром start начнет чат с ботом, при этом в поле ввода текста будет отображаться кнопка СТАРТ. При переходе по ссылке с параметром startgroup пользователю будет предложено добавить бота в одну из доступных групп. Как только пользователь подтвердит своё действие (нажмёт на кнопку СТАРТ или выберет группу), бот получит сообщение следующего формата:

    /start PAYLOAD

    В PAYLOAD будет значение параметра start или startgroup, который был передан в ссылке.
    Ответ написан
    Комментировать
  • Как открыть файл из каталога дочернего класса методом родительского класса?

    Можно вот таким методом класса:

    import sys
    
    class Machine:
       
        @classmethod
        def get_file_v1(cls) -> str:
            return sys.modules[cls.__module__].__file__


    P.S: Довольно интересная задачка. Мне самому пригодится.
    Ответ написан
    1 комментарий
  • While True через какое-то время перестаёт работать?

    Нажмите CTRL+C и посмотрите трейсбэк. Увидите, что именно выполнялось в этот момент.

    И нет ли у вас там HTTP-обращений ко внешним серверам, например через requests? Так когда не прописаны таймауты, эти обращения могут зависнуть на этапе установки соединения, не вызывая ошибку.
    Ответ написан
    Комментировать
  • Как на питоне вывести строку с определённым значением из файла?

    Если вы хотите вывести строку 654321 (вы же именно это написали)
    print("654321")

    Но если у вас задача "найти номер строки с текстом 654321", то решение будет другим.

    А если у вас задача считать данные и записать вместо этого новые данные, то разумнее использовать готовые решения - json+dict (для простого хранения небольшого количества нечасто меняемых пар ключ-значение) или БД (если данных много, важна стабильность и устойчивость к сбоям)
    Ответ написан
    Комментировать
  • Вывод словарь списков без скобок, как это сделать?

    Надеюсь, так понятнее, как всё работает. Каждая строка ясна?
    d = {'Вика': [2, 0, 0, 2, 0],
         'Даня': [2, 1, 0, 1, 3],
         'Лиза': [2, 2, 0, 0, 6]}
    
    for key, values in d.items():
        string_values = [str(i) for i in values]
        joined = ", ".join(string_values)
        print(f"{key}: {joined}")
    Ответ написан
    Комментировать
  • Проблемы с кодировкой, как исправить?

    Записывайте. Даю удочку. Рассказываю, как дебажить:

    Смотрите каждое промежуточное и думайте, корректное оно или нет.

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

    Например, подайте на вход прямой функции текст "D(k¢B"...

    А вообще, да. bin(ord(русска_буква)) будет больше чем 8 символов.
    Ответ написан
    Комментировать
  • Как изменить громкость компьютера через python?

    Если ошибка выдаётся ИНОГДА, и не понятно почему, то может обернуть в try...except и попробовать несколько раз?
    Ответ написан
    Комментировать