Создание ботов, парсеров и браузерных расширений.

Дополнительно, разработка небольших веб-сервисов различного назначения - это могут быть как CMS / CRM заточенные под конкретные узкие задачи, так и полноценные веб-приложения способные работать даже без интернета.
Контакты
Местоположение
Россия, Челябинская обл., Челябинск

Достижения

Все достижения (15)

Наибольший вклад в теги

Все теги (159)

Лучшие ответы пользователя

Все ответы (746)
  • Возможно ли закешировать около 1 гб в браузере?

    @zkrvndm
    Боты, парсеры, расширения
    Возможно конечно. Для хранения больших объемов данных в браузерах существует встроенная БД IndexedDB.

    Для работы с ней сначала подключаем специальную библиотеку, которая упрощает ввод и вывод:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>

    Далее, чтобы сохранить какие-то данные выполняем в консоли браузера:
    result = await localforage.setItem('key', save_data);
    console.log('Данные успешно сохранены:');
    console.dir(result);

    Где в save_data лежат сохраняемые данные, а key это ключ по которому можно было бы получить к ним доступ.

    Из особенностей, в save_data мы можем положить любой тип данных - хоть строку, хоть массив, хоть объект. Да даже файл при желании можно сохранить! При этом нет ограничений по объему хранимых данных, можете хоть сто мегабайт, хоть триста запихнуть - встроенное хранилище все сожрет.

    Чтобы потом извлечь сохраненные данные достаточно выполнить:
    result = await localforage.getItem('key');
    console.log('Данные успешно извлечены:');
    console.dir(result);

    Срок хранения данных - неограниченно. Или пока пользователь вручную не обнулит кеш браузера.

    P. S. Обратите внимание, что если вы где-то в своем коде внутри функции используете слово await, то такая функция обязательно должна иметь приставку async! Иначе получите ошибку. В консоли можно использовать await в лоб, но для использования await в коде нужно, чтобы функция внутри которой она вызывается была асинхронной!!!
    Ответ написан
  • Как называется расширение файла для запуска html на компьютере без браузера?

    @zkrvndm
    Боты, парсеры, расширения
    Как один из вариантов, вы можете заверстать обычный веб-сайт с нужным вам функционалом и запихнуть файлы вашего сайта в Electron. Будет открываться на любом ПК, даже если там нет браузера. Все это без адресной строки, словно это программа, хотя это и будет программа, пусть и написанная чисто на HTML/JavaScript. Сам по себе Electron представляет собой настраиваемый в широких пределах браузер, отображающий то, что в него вложите и именно так, как вам нужно. Плюс, возможность получить доступ к вашему железу, файловой системе и другим вещам, чисто через JavaScript.

    Подробнее тут.
    Ответ написан
  • File_get_contents не работает. Что я делаю не так?

    @zkrvndm
    Боты, парсеры, расширения
    У меня одно время тоже гет контент не работал, в упор не мог понять в чем проблема. Оказалось проблема была не в скрипте, а в том, что конечный сайт блокировал все запросы от подозрительных юзер агентов. Короче, мне помогла установка правильного заголовка, замаскировал юзер агент под хром и все заработало.

    Попробуйте и вы:
    https://yandex.ru/search/touch/?text=file_get_cont...
    Ответ написан
  • Как безопасно отправить пароль зарегистрировавшемуся пользователю?

    @zkrvndm
    Боты, парсеры, расширения
    Пользователь САМ должен придумать пароль, а ВЫ должны хранить хеш от него, но не САМ пароль. Разумеется в целях большей безопасности НЕ нужно отправлять пароль на почту, вот совсем-вообще. Единственный тонкий момент - на этапе ввода юзером его пароля, проверяйте, чтобы юзер выбрал достаточно надежный пароль.
    Ответ написан
  • Как дробить большие post запросы?

    @zkrvndm
    Боты, парсеры, расширения
    Ну, в теории можно запаковать все файлы в архив, сам архив разбить на ровные части и отравить на сервер, а там уже собрать мозаику обратно, после чего распаковать собранный архив.

    Создавать zip-архивы на JavaScript можно посредством библиотеки JSZip, он на выходе даст вам Blob, который в свою очередь ни что не помешает разбить на части и отослать кусками.

    P. S. Но честно сказать, вам будет проще увеличить лимиты сервера, чем такую мудрёную схему реализовывать. Если хостер не позволяет менять лимиты, меняйте хостера или переходите на VDS.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (135)