Ответы пользователя по тегу Python
  • Как ввести длинный поток байтов?

    @rPman
    Ввести как константу в исходниках? самое простое base64 encoding
    base64.b64decode('твоя base64 строка')

    а сам исходный файл кодируй либо какой либо утилитой либо онлайн либо напиши программу на python в 3 строчки
    -------------

    есть утилита xxd, она преобразует файл в набор 16-ричных цифр, добавить к ним \x и заключить в ковычки b'\x...' получишь свою строку

    -----------

    chatgpt сгенерировал такую программу, чтобы сделать это самому да еще и печатные символы в код не преобразовывать, выглядит вроде верным кодом
    import string
    
    # Откройте файл в режиме чтения байтов и прочитайте его содержимое
    with open('your_file', 'rb') as f:
        byte_content = f.read()
    
    # Преобразуйте байты в строку байтов
    byte_string = ''
    for b in byte_content:
        if chr(b) in string.printable and b not in (0x0a, 0x0d):  # Проверка, является ли символ печатным и не является ли он символом новой строки или возврата каретки
            byte_string += chr(b)
        else:
            byte_string += '\\x{:02x}'.format(b)
    
    # Выведите строку байтов
    print(byte_string)
    Ответ написан
    Комментировать
  • Обход блокировки API openai?

    @rPman
    Мой ответ не про openai в частности а в целом про прокси.

    Арендуешь vps с поддержкой ssh (т.е. любой) и ничего не настраивая на нем кроме может пользователя (команда useradd ... и пароль passwd) и опционально настраиваешь беспарольную авторизацию ssh на своем локальном компьютере (смотри как настраивать твой любимый клиент ssh) делов на 1 минуту. А дальше, в своем клиенте добавляешь настройку тунеля -Dпорт (это ключ ssh, например в putty он называется Dynamic) и после подключения к своей vps-ке (в этом окне ssh ничего больше не надо делать, пусть висит) у тебя локально на комьютере будет поднят socks прокси сервер, который прописываешь в браузере или где тебе надо. Например -D1080 даст socks5 прокси по адресу localhost:1080

    Теперь про аренду vps, идешь на поисковик дешевых vps-ок lowendstock и выбираешь себе от 2 бакса в год (но это совсем ущербные), там же почти все принимают оплату биткоинами. У меня годами работают vps-ки с ценой от 1$ в месяц до 3$ (последняя для моих скриптов с 1gb ram и 20gb ssd, не самая шустрая но свои $ отрабатывает на ура)

    p.s. если vps-ка на основе kvm (точнее можно и на любом но нужен модуль tun) то есть шанс настроить ssh сервер на работу vpn-ом буквально

    upd. к сожалению в россии провайдеры стали потихоньку ломать ssh протокол
    , и он рандомно может быть очень медленным, больших скоростей не жди, у меня на ростелекоме с 5мбайт/с может упасть до 100кбайт/сек и держаться так часами (притом что канал у ростелекома широкий, я с того же huggingface на 25мбайт/cек качал гигабайтами нейронки)
    Ответ написан
    3 комментария
  • Как Python и Selenium заставить найти текст?

    @rPman
    Тестируй css селекторы в отладочной консоли браузера, используя, либо штатный querySelector('xxx'), либо, при наличии, jquery $('xxx'). Используй встроенный генератор css селектора (правая кнопка на элементе, копировать,...)
    Ответ написан
    1 комментарий
  • Почему в этом коде при проверке слов с помощью оператора in в скобках он работает как надо, а без скобок по другому?

    @rPman
    Это не должно работать, or это логический оператор, т.е. ты буквально пытаешься сравнить строковые константы как логическое выражение которое true/false, а затем пытаешься результат сравнения найти в массиве с помощью in, который введённая строка (массив символов), хз что он там у тебя находит, но явно не то что ожидаешь.

    Уличная скобки, ты меняешь приоритет операций, и сначала у тебя отрабатывает in, с ближайшим словом, а затем or строки истинные, должно быть всегда true
    Ответ написан
    Комментировать
  • Подойдет ли для парсинга сайта Амазон библиотека Selenium Stealth на Python?

    @rPman
    Главный вопрос, почему именно amazon? почему именно selenium-stealth? Вы пробовали другие инструменты и они не сработали?

    Как можно на самом старте завязывать свою инфраструктуру на облачные решения, у которых за норму установлено направление на вендорлок? Вы хотите платить десятикратную цену? Вы хотите платить за свои мелкие ошибки с тарификацией за трафик а чаще с планом - пока не кончатся выделенные деньги?

    p.s. я не нашел продукта под названием Amazon Selenium Stealth, но нашел статьи по использованию amazon lambda и библиотеки selenium-stealth
    Ответ написан
  • Как установить Python 3.9.6 на Ubuntu 20.04 LTS?

    @rPman
    Можно воспользоваться ppa репозитарием 'от сообщества'

    А вообще странно что ты не попытался даже погуглить, первая же ссылка тупо на твой вопрос.

    p.s. очень смешно, уже есть готовые бесплатные ИИ ассистенты, способные не просто болтать но и искать в интернете (майкрософтовский bing chat), я удивлен что количество простых вопросов на площадке не уменьшилось, неужели не знаете? как можно пропустить персонального ассистента, который благодаря интернету умнее (ладно эрудированней) любого обывателя и не только, он за тебя не только ищет но и читает найденные статьи и дает из них нужную выжимку.
    Ответ написан
  • Как переубедить нейросеть (чтобы данные из промпта считались более важными)?

    @rPman
    С LLM у тебя только два варианта - добавлять информацию в запрос, а в случае с противоречиями, тюнить и усложнять подводку, типа если ты хочешь чтобы везде где сетка использует цвет красный она говорила
    бибип:
    Дальше в ответе вместо цвета - 'красный' ты должен писать бибип, с учетом правил русского языка, рода и склонения. Назови три цвета у светофора

    Три цвета у светофора: бибип, желтый и зеленый.



    Так вот тюнинг, очень противоричивая технология, в каких то случаях она значительно улучшает результат, есть даже ускоренный тюнинг, затрагивающий очень небольшой процент весов или даже только веса векторов запроса но не самой сетки (есть открытый проект peft с поддержкой практически всех доступных моделей), к сожалению openai не дает красивого доступа к этому, хотя для младших моделей типа gpt35turbo или davinci у нее такой механизм есть.

    Этот механизм имеет недостатки, из-за проблемы 'катастрофического забывания', чем больше данных ты пытаешься добавить в модель через дообучение, тем больше она забывает ранее выученных (с этим борются подмешиванием данных из изначальной обучающей выборки но это не так просто)
    Ответ написан
    Комментировать
  • Как быстро распарсить много json файлов на python?

    @rPman
    Если узкое место - разбор огромного json, то тебе нужен потоковый парсер, их огромное количество, гугл для питона выдает к пример ijson.

    Если этого будет мало, попробуй переписать это место на c/c++, там еще быстрее парсеры, например simdjson обещает гигабайты в секунду (и это реально так)

    Эти парсеры пробегают линейно по токенам, а ты в процессе принимаешь решение нужно ли пропустить данный токен (или целый подраздел) или обрабатывать далее, благодаря такому подходу в оперативной памяти не сохраняется ничего из входного json а потоковый подход позволяет даже распаралелить обработку (в отдельном потоке/процессе ты анализируешь json а в другом пишешь в базу данных)
    Ответ написан
    Комментировать
  • Как узнать время выполнения работы функций и детализацию?

    @rPman
    Это называется профилирование, гуглить python profilers
    например cprofile
    https://habr.com/ru/companies/vk/articles/202832/
    Ответ написан
    Комментировать
  • Как сделать так, чтобы не выходил из программы, пока не нажму Ente?

    @rPman
    Значит на машине не установлен python

    Окружений python несколько, как минимум свое идёт вместе с ide. Если ставить python с официального сайта, то окружение будет единое для всех приложений, рекомендую начать именно с этого варианта.
    Ответ написан
  • Получение ошибки при запросе на биржу?

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

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

    @rPman
    Вопрос на самом деле не простой, речь не о программировании а об идеологии.
    У тебя два варианта - твое приложение реализует собственно браузер (примерно так работает electron приложения) либо какими то способами скрывается основное (в твоем случае консольное) окно приложения.

    Идеологически скрывать приложение некрасиво, как минимум пользователь должен иметь возможность его остановить, закрыв связанное с ним окно (в реальности закрытие окна не является закрытием приложения но это ожидаемое поведение для пользователя), когда то было нормой, скрываемые окна для приложения 'сворачивали в системный трей', т.е. окно скрывается но в системный трей (у часов) добавляется иконка с меню приложения.

    Теперь по факту. Скрыть свою системную консоль приложение не сможет, как в windows так и в linux (при наличии прав конечно сможет, но речь о типовых ситуациях) но можно запустить приложение изначально указав его сокрытым. Для каждой ОС свои способы.

    На python можно запустить любое приложение сокрытым, т.е. твое приложение запускает само себя с определенным ключом (и первый экземпляр завершает работу), чтобы исключить зацикливание, следующим образом:
    https://stackoverflow.com/questions/2319838/open-a...

    upd. погугли pythonw.exe и .pyw extention, такой тип приложений будет запускаться без консоли но как я понял это очень устаревший подход и может не поддерживаться.
    Ответ написан
    Комментировать
  • Надо ли что-то еще делать для избежания SQL инъекций?

    @rPman
    Конкретно для защиты от одной из многих атак - sql injection, да
    А еще нужно проверять на ошибки, проверять на валидность самих значений соответственно бизнес модели и состояний (например пользователь редактирует запись, указывая идентификатор связанной таблицы, так вот нужно проверить имеет ли он права в принципе указывать полученный id)
    Ответ написан
    4 комментария
  • Как запустить свой профиль firefox selenium?

    @rPman
    options.add_argument('-P имя_профиля');
    так же попробуй --profile путь_до_профиля

    профиль создать нужно заранее
    Ответ написан
    1 комментарий
  • Как создать скрипт, который заходит на сайт и нажимает на кнопку каждый час?

    @rPman
    Для тех кому очень сложно программировать но есть минимальное понимание этого можно использовать плагин tempermonkey который инжектит пользовательский скрипт на сайт по ссылке или ее маске, а там нужна пара строчка вида:
    document.querySelector('css selector').click(); // кликнуть на кнопку
    setTimeout(()=>window.close(),3000); // закрыть окно через 3000 миллисекунд

    css selector определяется тупым копированием (в большинстве случаев) из инспектора (правая кнопка на элементе, инспектировать, правая кнопка на элементе в инспекторе, копировать как...)

    теперь достаточно раз в час (например через планировщик задач) запускать браузер с нужной ссылкой, он будет открываться, жать нужную кнопку и завершать работу, автоматически, в параметрах можно указать выделенный профиль, тогда браузер будет запускаться, не затрагивая уже запущенный под основным профилем, а так же указать чтобы он запускался минимизированным
    Ответ написан
    Комментировать
  • Как обработать ssh-вывод построчно с помощью Python?

    @rPman
    Не очень эффективный путь но простой - запускаешь ssh xxx@yyy cat /path/log/file > temp_file ждешь окончания и читаешь полученный файл temp_file. тут cat это программа на сервере, выводит в stdout содержимое файла, но можно прямо на сервере часть обработки запускать используя grep/sed/awk/..

    сложнее, берешь какой-нибудь модуль для работы с ssh или scp для python, я не пробовал но гуглится много, например, и работаешь с выводом ssh напрямую.

    Так же можно попробовать вызывая subprocess подключаться к потокам и обрабатывать вывод, не сохраняя (я так делал на php, есть подводные камни на windows машинах, если не wsl), вроде гуглится что не всегда все работает как хочется, но если просто подключиться и об
    Ответ написан
    Комментировать
  • Почему скрипт не понимает, что данные в MySql изменились?

    @rPman
    код, который обновляет данные случайно не начал транзакцию и не завершил ее?
    Ответ написан
  • Парсер OZON выдает пустой список в таблицу Excel, в чем проблема кода?

    @rPman
    Проверь, что тебе вернул BeautifulSoup, есть ли в его ответе нужные div и a.
    Вполне возможно что наименования классов изменились, или в ответе нет в принципе товаров, например стоит защита от таких парсеров либо код html формируется в браузере скриптом а не на сервере и т.п.

    Настоятельно рекомендую не мучиться, и работать с полноценным браузером (например selenium или инжектить скрипт в обычный браузер плагином типа greasemonkey) а не такими примитивными техниками как BeautifulSoup, тогда тебе будет не важно, как защищается площадка (почти, существуют способы защиты и от этого), в конечном счете ты должен будешь симулировать поведение обычного пользователя на обычном браузере, выдерживать паузы, возекать и кликать мышкой и прочее.
    Ответ написан
    Комментировать
  • Как подсчитывать на видео проходящих людей по головам?

    @rPman
    Боюсь ты не найдешь готовых решений
    Мало того, тут нужно искать размеченный датасет голов людей и радоваться этому богатству

    Решение для тебя - берешь несколько сотен тысяч видео (разные времена года), нанимаешь десяток человек в помощники и садишься размечать, затем берешь готовые решения по нейронкам, арендуешь на недельку себе кластер с gpu или на месяц другой игровую видеокарту и вперед с примерами от pytorch пилишь результат.

    Теперь советы - прежде чем работать с нейронкой, попробуй другие решения, например благодаря тому что видеокамеры у тебя не двигаются, ты можешь получать объекты через разницу дефолтной картинки и текущей (так же можно просто считать по каждому пикселу гистограмму частоты значения интенсивности во времени (лучше брать HSV а не RGB) и вычитать из текущего изображения те цвета, что дольше всего на видео (осторожно в час пик магазин может часами быть битком забитый), добавляешь сюда алгоритмы локального детекта движений (строится карта векторов по всему изображению), т.е. ты можешь с высокой точностью детектировать кусок кадра на основе видео (несколько соседних кадров) который однозначно можно считать человеком (или несколькими), и вот уже вырезая их ты можешь начинать разметку видео для нейронки

    p.s. после того как ты на все это портатишь от нескольких сотен тысяч рублей до миллионов, к тебе подойдет такой же как ты сейчас и скажет, а дай мне готовые веса твоей нейронки... куда ты его вежливо пошлешь?
    Ответ написан
    1 комментарий