Ответы пользователя по тегу Python
  • Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть ли в питоне в стандартной библиотеке под типы целочисленные(знаковый\безнаковый, byte, short)?

    Нет.
    Вопрос как без бубна и доп.библиотек реализовать ограничение на целочисленную переменную,
    данные берутся из БД и тудаже сохраняются, в БД к примеру стоит тип поля byte[0..255] or byte[-128...+128] как кроме проверок обеспечить заданные параметры для переменной в питоне, что бы она не выходила за рамки заданного типа?

    - Использовать библиотеку (рекомендую), например Pydantic (используется в самом быстром (из популярных) веб-фреймворке FastAPI по дефолту).
    - Класс (с инкапсуляцией такого действия).
    - Простые проверки.
    Ответ написан
    3 комментария
  • Selenium webdriver - как привязать ipv6, чтобы браузер работал от указанного апи с сервера?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Ниже примеры, где можно ставить прокси на уровне все скрипта (Proxy()) и прокси на уровне браузера:
    https://proxy-seller.com/blog/how_to_set_up_a_prox...
    https://www.zenrows.com/blog/selenium-proxy
    https://pythonturbo.ru/selenium-with-proxy
    https://aryalinux.org/blog/how-to-use-a-proxy-in-s...
    Ответ написан
    Комментировать
  • Python чистка куков в selenium webdriver, кто делал?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Удаление всех cookie:
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get('//www.example.com')
    driver.delete_all_cookies()

    Удаление определенных cookie по имени:
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get('//www.example.com')
    driver.delete_cookie('cookie_name')

    Сохранение cookie в файл:
    import json
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    cookies = driver.get_cookies() 
    with open('cookies.txt', 'w') as file:
        json.dump(cookies, file)

    Загрузка cookie из файл в браузер:
    from selenium import webdriver
    import json
    
    driver = webdriver.Chrome()
    with open('cookies.txt', 'r') as file:
        cookies = json.load(file)
    
    for cookie in cookies:
        driver.add_cookie(cookie)
    
    driver.get("//www.example.com")

    Создание своих cookie:
    from selenium import webdriver
    
    cookie = {
        'name': 'cookie_name',
        'value': 'cookie_value',
        'path': '/',
        'secure': False
    }
    
    driver = webdriver.Chrome()
    driver.add_cookie(cookie)

    Проверка наличия определенных cookie в браузере:
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get('//www.example.com')
    
    cookie_name = 'cookie_name'
    cookie = driver.get_cookie(cookie_name )
    
    if cookie:
        print(f"Cookie '{cookie_name}' found: {cookie}")
    else:
        print(f"Cookie '{cookie_name}' not found.")
    Ответ написан
    2 комментария
  • Как мне обрабатывать ошибку jspybridge?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Я могу как-то отследить эту ошибку (не в определенной части кода, а вообще где угодно), в положительном случае

    Exceptions Python:
    from jspybridge import JSPyBridge
    
    bridge = JSPyBridge()
    
    try:
        # код, который отработает без ошибок
    except jspybridge.JSPyBridgeError as e:
        # код, который выбросит исключение, например, при краше Nodejs
        print(f"ОшибкО: {e}")

    Exceptions JS:
    import {JSPyBridge, JSPyBridgeError} from 'jspybridge';
    
    const bridge = new JSPyBridge();
    
    try {
        // код, который отработает без ошибок
    } catch (error) {
        if (error instanceof JSPyBridgeError) {
            // код, который выбросит исключение, например, при краше Nodejs
            console.error(`ОшибкО: ${error.message}`);
        }
    }

    я могу ее просто игнорировать или нужно как-то перезапустить код?

    Краш процесса ноды обычно является серьезным событием и требует перезапуска js скрипта.
    Либо возможно как-то избавиться от этой ошибки?

    Можно написать код без ошибок.
    Ответ написан
  • Как изменить итернет трафик спомощу python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Код на Python написан правильно но вот система постоянна выдаёт ошибку пробовал обновлять все билиотеки но ошибка остаётся?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting

    File "C:\Peton\python\.venv\lib\site-packages\aiogram\dispatcher\__init__.py", line 2
    IndentationError: expected an indented block after class definition on line 1

    Похоже, что внутри __init__.py (aiogram\dispatcher) проблемы с табуляцией.
    Ответ написан
    1 комментарий
  • На чем лучше запускать сервер Flask с большой нагрузкой на CPU?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть ли варианты как это правильно можно сделать?

    Использовать Celery для выноса тяжелых задач в очередь, без блокирования основного потока Flask.
    Ответ написан
  • Как правильно преобразовать в обьект python скачанный json файл?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Нужно читать не сам объект, а его содержимое, например json() методом. Добавил заголовок, т.к. сервер блочил ответ без них с кодом 403:
    import requests
    
    url = "http://detailing69.ru/wb_cookies.json"
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }
    
    res = requests.get(url, headers=headers)
    
    if res.status_code == 200:
        print(res.json())
    else:
        print(f"ОшибкО: {res.status_code}")
    
    # [{'seller': 'Оксана ', 'cookies': {'general': '1', 'statistics': '2', 'supplies': '3', 'advertisement': '4'}}]
    Ответ написан
  • Почему не получается заполнить базу данных sqlite через телеграмм бота?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    У Вас создается таблица login_id, но затем, Вы используете user_id... Так же, в таблице всего 1 столбец id, так и задумано?
    Ответ написан
    1 комментарий
  • Как узнать на каком этапе присваиваются cookies?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    было бы неплохо понять на каком этапе присваиваются эти ключи и перезаписать имеющиеся куки на новые

    Можно сравнивать старые с новыми печеньками, т.к. у нас python в тегах, то буду использовать лишь его (а не внешние инструменты):
    import requests
    from http.cookiejar import CookieJar
    
    # initial cookies
    initial_cookies = {}
    
    session = requests.Session()
    session.cookies = CookieJar()
    
    # set cookies
    session.cookies.update(initial_cookies)
    
    # post
    response = session.post(
        'https://seller-supply.wildberries.ru/ns/sm-supply/supply-manager/api/v1/supply/listSupplies',
        headers=headers,
        json=json_data,
    )
    
    # get updated cookies
    updated_cookies = session.cookies.get_dict()
    
    # check new cookies
    if initial_cookies != updated_cookies:
        print("Свежее печенье.")
        print("Старье:", initial_cookies)
        print("Новье:", updated_cookies)
    else:
        print("Свежее печенье не завозилось, расходимся.")

    был бы рад если кто-нибудь объяснит как в принципе присваиваются куки

    1. Запрос к серверу > возврат данных (html, json итп.) + возврат печенек (заголовок Set-Cookie).
    2. Повторный запрос (повторяем п1), но уже с печеньками. Если сервер сочтет, что пора обновить печеньки (авторизация, например), то вернет новые с заголовком Set-Cookie, соответственно приложение (отправившее запрос) мониторит такой заголовок.
    HTTP-куки
    Ответ написан
    4 комментария
  • Как захостить телеграм бота на хостинге для сайтов?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Изучив их руководство? Спросить у их поддержки?
    Вот их пример установки Django, делайте так же, только Django не ставьте.
    Ответ написан
    Комментировать
  • Как отправить решение капчи?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Подставить код-решение в поле, которое ранее необходимо было сделать display=block, а затем нажать на кнопку войти, ну или любое другое действие, которое отслеживает рекапча.
    КартинкО
    659abb0ea29eb164258346.png
    Ответ написан
  • Что выбрать WP или Python+Django для сайта?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Короткий ответ (с учетом указанного ТЗ) - WP.

    Длинный ответ:
    публиковать страницы, создавать иерархию страниц, чпу url, какой то слайдер с картинками

    Учитывая типовое ТЗ, ответ - WP (все это уже реализовано, приимущественно бесплатно и в большом количестве).
    небольшое количество услуги в регионе

    Вы на старте выхода в интернет, предположу, что количество оказываемых услуг оффлайн - будет примерно равнозначно количеству оказываемых услуг онлайн, а значит производительность инструмента не первостепенна, ответ - WP.
    Нашли компанию, предлагает разработку сайта на WP или на Python+Django (дороже и дольше)

    Начнем с того, что это не равнозначные инструмент, ибо WP - это готовый движок/CMS для сайта + сам сайт (готовые шаблоны), развернул на хостинге и готово. А вот Django - это фреймворк, т.е. некий набор инструментов, да он позволяет сделать из него что угодно (ах*енно сделать (на правах отвечающего)), но потом. Соответственно, если вопроса в функционале и производительности не стоит (и предположу - сделать быстро) - выбираем WP, будет дешевле и быстрее.

    Что обычно я использую (от начального проекта к финальному):
    1. WP в стоке.
    2. Оптимизация производительности WP в 2-3 раза под конкретные задачи (от wp там мало что остается, но ценник и сроки еще не такие, как в п3).
    3. ASP.NET (если нужно быстрее любого WP и более специфический функционал).
    4. ASP.NET + кэширование (если прям совсем прижало по производительности).
    Ответ написан
    6 комментариев
  • Как оптимизировать сервер на python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    как можно улучшить код, чтобы данные с сервера к клиенту предавались быстрее

    Я бы использовал следующее:
    - Асинхронность с Asyncio.
    - Сжимать аудио перед отправкой на клиент.

    Если я правильно понимаю, Вы используете новое соединение для каждого запроса? Может лучше постоянное?
    Ответ написан
    2 комментария
  • Почему модуль winsound не воспроизводит звук?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Вы не передали переменную с путем до "звука":
    import winsound
    sound_timer = 'stoping.wav'
    # winsound.PlaySound('sound', winsound.SND_FILENAME)
    winsound.PlaySound(sound_timer, winsound.SND_FILENAME | winsound.SND_LOOP)

    Расширенное руководство.
    Ответ написан
  • Как составить HTTP post запрос на dadata?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Помогите составить запрос с помощью модуля requests

    Вы имели ввиду "напишите за меня запрос с помощью модуля requests"?

    На основе официального примера, с помощью модуля requests:
    import requests
    import json
    
    api_key = "api_key"
    secret_key = "secret_key"
    api_url = "https://cleaner.dadata.ru/api/v1/clean/address"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Token {api_key}",
        "X-Secret": secret_key
    }
    
    # data
    data = ["мск сухонска 11/-89"]
    
    # requests
    response = requests.post(api_url, headers=headers, data=json.dumps(data))
    
    # check response
    if response.status_code == 200:
        print(f"Success: {response.json()}")
    else:
        print(f"Failed: {response.status_code}, {response.text}")
    Ответ написан
    Комментировать
  • Почему бот дважды выполняет команду (telebot)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему бот дважды выполняет команду (telebot)?

    Присмотритесь внимательнее на свой код, в цикле происходит отправка одного и того же сообщения столько раз, сколько пользователей в чате (дважды, если пользователей в чате тоже двое):
    for user in range(users):
        try:
            bot.send_message(message.chat.id, msg)
    Ответ написан
  • Можно ли как-то применять execute_script относительно только WebElement в Selenium, а не драйвера?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно, попробуйте так:
    el = driver.find_element(By.CLASS_NAME, "checbox")  # or checkbox?
    c = driver.execute_script("return arguments[0].getBoundingClientRect();", el)
    print(c)  # {'bottom': 200, 'height': 50, 'left': 150, 'right': 250, 'top': 150, 'width': 100}
    Ответ написан
    2 комментария
  • Почему возникает ошибка "got an unexpected keyword argument 'use_context'"?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    TypeError: Updater.__init__() got an unexpected keyword argument 'use_context'

    use_context не поддерживается в качестве аргумента для python-telegram-bot.
    есть люди кто мог бы пояснить что я делаю не так

    Можно просто прочитать ошибку...
    Ответ написан
    8 комментариев
  • Как красиво обработывать ошибки для пользователя, в процессе выполнения скрипта Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Исключения try except.
    2. Логирование.
    3. Если нет возможности подробно описывать ошибки в самом скрипте, то пишите коды ошибок, а на стороннем ресурсе (едином для всех) описывайте, что означают эти коды.

    Т.к. в реальном мире все возможные варианты не предусмотреть, то предлагаю использовать 3 вариант + предложение отправить ошибку в поддержку за вознаграждение, в итоге поимеем:
    - Относительно недорого тестера.
    - Относительно довольного пользователя (получил какой то бонус + ткнул носом целого разраба).
    Ответ написан
    Комментировать