Задать вопрос
Ответы пользователя по тегу Python
  • Как исполнить методы с помощью api dmarket?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Так а в чем проблема? Там же написано все по шагам:
    1. Получайте secret и public ключи
    2. Формируйте запрос
    2.1. Для подписи используйте pnalc какой
    3. Отправляйте запрос
    4. Если на каком-то этапе возникнет проблема - пишите сюда

    Пока это выглядит как задача, с которой вам на фриланс, а не вопрос.

    Не проверял, но что-то такое должно быть в итоге (подставляйте свои ключи и проверяйте):
    import requests
    import time
    import hashlib
    import nacl.signing
    import nacl.encoding
    
    public_key = 'your_public_key_here'
    secret_key = 'your_secret_key_here'
    
    http_method = "POST"
    route_path = "/get-item"
    query_params = "Amount=%220.25%22&Limit=%22100%22&Offset=%22150%22&Order=%22desc%22"
    body_string = "" 
    timestamp = str(int(time.time())) 
    
    non_signed_string = f"{http_method}{route_path}?{query_params}{body_string}{timestamp}"
    
    signing_key = nacl.signing.SigningKey(secret_key, encoder=nacl.encoding.HexEncoder)
    signed = signing_key.sign(non_signed_string.encode())
    signature_hex = signed.signature.hex()
    
    headers = {
        'X-Api-Key': public_key,
        'X-Sign-Date': timestamp,
        'X-Request-Sign': signature_hex,
        'Content-Type': 'application/json'
    }
    
    url = f"https://api.dmarket.com{route_path}?{query_params}"
    
    response = requests.post(url, headers=headers, json={})
    
    print(f"Status Code: {response.status_code}")
    print(f"Response: {response.json()}")
    Ответ написан
    Комментировать
  • Как достать данные из тега?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    66ce38f823106833102800.png
    66ce3c46df02d322388001.png

    Ваш код работает правильно, если он должен извлекать текст из первого элемента p в элементе td class="text-center".
    Однако, если ваша цель — извлечь дату из 4 колонки, то нужно изменить селектор для поиска.

    Если использовать парсер, то я бы сделал так:
    1. Нашел бы все строки tr, которые содержат данные
    2. Для каждой строки (tr) получил бы все колонки (td)
    3. Извлек бы нужные данные (например, дату) из соответствующей колонки
    4. Сохранил бы эти данные в массиве
    5. Дальше бы уже использовал бы

    Но можно же просто отправить запрос и получить все эти данные в формате json, так не проще?
    Вот ссылка, которую можно в браузере открыть - https://etender.gov.az/api/events?EventType=2&Page...
    Обычный GET запрос отправляете и получаете:
    {
      "currentPage": 1,
      "totalPages": 173,
      "pageSize": 15,
      "itemsInPage": 15,
      "totalItems": 2591,
      "items": [
        {
          "eventId": 314749,
          "eventType": 7,
          "eventStatus": 1,
          "buyerOrganizationName": "NAXÇIVAN MUXTAR RESPUBLİKASI QAZ İSTİSMAR XİDMƏTİ",
          "eventName": "Qaz tikinti quraşdırma materialları və avadanlıqlarının satınalınması",
          "publishDate": "2024-08-27T19:50:59",
          "endDate": "2024-09-18T18:00:00",
          "hasNewVersion": false,
          "awardedParticipantName": null,
          "awardedParticipantVoen": null,
          "documentViewType": 0,
          "actualVersionId": 0,
          "privateRfxId": 93247
        }
    .....
      ]
    }
    Ответ написан
    4 комментария
  • Как запустить файл на ПК при получении сообщения от пользователя ВК?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Статья на Habr: Как создать чат-бота для ВКонтакте, используя Pyth...

    Есть два варианта реализации:
    • Webhook (описано в статье):
      1. Подписываетесь на событие - новое сообщение
      2. Ожидаете событие
      3. Получаете сообщение
      4. Запускаете программу


    • Вызов API (попроще):
      1. Напишите скрипт, который отправляет запрос messages.getHistory
      2. Парсите сообщения (находите новое)
      3. Запускаете программу
      4. Добавляете этот скрипт в планировщик задач (cron) каждые N минут



    Для упрощения задачи можно использовать одну из следующих библиотек:
    1. vk_api
    2. vk (давно не обновлялась)


    Если не хочется заморачиваться с кодом, попробуйте использовать конструктор для автоматизации задач. Например, на make.com — веб-приложении, которое выполняет задачи по расписанию (аналогично cron). У них есть интеграция с VK.
    Ответ написан
    1 комментарий
  • Что я написал не так?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Если одно из условий true, то всегда true
    Ответ написан
    1 комментарий
  • Почему не работает бот вк?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    В ошибке же написано, что не предоставлен random_id
    Vk api
    random_id Unique identifier to avoid resending the message.
    int (number), accessible for versions from 5.45

    Вот офф документация vk_api
    Вот код, который отвечает за передачу сообщения:
    vk.messages.send(
        user_id=event.user_id,
        message='No results'
    )

    Откуда Вы взяли свой код я не знаю. Наверно, устарел Ваш источник(или попробуйте добавить radnom_id самостоятельно, мб сработает. Что-то такое:
    vk.method('messages.send', {
        'user_id': user_id,
        'message': msg,
        'random_id': random_id
    })

    ). VK обновлял что-то у себя недавно
    Ответ написан
    Комментировать
  • Как решить задачу на Питоне для очень маленьких?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    for i in range(1,6):
      print("0" * i)
    Ответ написан
    1 комментарий
  • В какие известные игры с большой аудиторией в теории можно написать ботов на Python?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Любая игра, которая Вам интересна. Только как это связано с классами?
    Для примера GTA 5
    Ответ написан
  • Как выровнять пингвина по середине с помощью Python?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    import os
    
    strings = [ '_~_ ', '(o o)', '/ V \\', '/( _ )\\', '˄˄ ˄˄', ]
    rows, columns = os.popen('stty size', 'r').read().split()
    
    for string in strings:
      padding = int(columns) - int(len(string) / 2)
      print(string.center(padding))


    5bd5b646b5b34035657059.png
    Ответ написан
    9 комментариев
  • Как правильно запускать telegram бота на ssh сервере?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Вы когда терминал закрываете у себя на компьютере, то процесс, который был запущен в нем, завершается.
    Следовательно, Вам надо запустить bot в фоне. Способов куча... пусть будет screen
    sudo apt install screen
    screen -S mybot
    python3 bot.py
    Комбинация клавиш CTRL A затем D
    Можно закрывать терминал

    screen -r mybot - чтобы открыть при следующем входе
    Ответ написан
    Комментировать
  • Как установить pipenv на чистой системе lubuntu (на основе ubuntu 18.04)?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    А чем Вас не устраивает официальная документация?
    pip install pipenv
    Или через репозиторий:
    sudo apt install software-properties-common python-software-properties
    sudo add-apt-repository ppa:pypa/ppa
    sudo apt update
    sudo apt install pipenv


    pip install --user от pip install отличается местом установки.
    Если pip install установит куда-то сюда /usr/local/lib/python3.4, то pip install --user в домашнюю в директорию( ~/.local/ ). Следовательно, для pip install(возможно) понадобятся права суперпользователя - sudo pip install

    pip3 используется для установки пакетов для разных версий python (2 - 3)
    В Ubuntu(и иже с ними) из коробки установлены версии 2, 2.7, 3, 3.5
    Следовательно, если мы хотим использовать python3.*, то для установка пакетов надо использовать pip3, а для python2.* - pip
    Стоит отметить, что и установка pip для каждой версии python отличается:
    sudo apt install python3-pip 
    sudo apt install python-pip


    ps вся информация есть на офф сайте или используйте команду man или --help
    pip install --help
    где мы читаем:
    --user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on
    Windows. (See the Python documentation for site.USER_BASE for full details.)


    psps не знаю почему Вы выбрали именно pipenv, если можно использовать virtualenv, который популярнее, проще для новичка:
    sudo apt-get update && sudo apt-get -y upgrade
    sudo apt-get install python3
    sudo apt-get install -y python3-pip
    pip3 install virtualenv
    
    mkdir django-apps
    cd django-apps 
    virtualenv env
    . env/bin/activate
    
    (env) sammy@ubuntu:$ pip install django
    (env) sammy@ubuntu:$ django-admin --version
    
    (env) sammy@ubuntu:$ django-admin startproject app


    Django установлен.
    Ответ написан
    Комментировать
  • Как отправить сообщение пользователю в Telegrame от бота?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Из ошибки видим, что бот не может создать беседу. Вы точно ее создаете через аккаунт, а не через бота? Проверьте внимательно переменные: id-пользователя и тд

    Сложно сказать в чем ошибка не видя кода... Кидайте сюда его - решим проблему)

    Какой библиотекой пользовались? Актуальная? У них там обновление было не так давно мб чего поменяли - в порядке полного бреда идея.
    Ответ написан
  • Python Как обрезать изображения?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Не уверен в правильности решения(не сталкивался с такой проблемой. В PS это делается обычным макросом), но есть библиотека cv2

    1- переводим в чб (что-то такое cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY) )
    2 - выделяем область ( cv2.Canny(image, threshold1=123, threshold2=123))
    3 - обрезаем
    Ответ написан
    1 комментарий