Создание ботов, парсеров и браузерных расширений.
Контакты
Местоположение
Россия, Челябинская обл., Челябинск

Достижения

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

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

Все теги (201)

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

Все ответы (1088)
  • Возможно ли закешировать около 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 в коде нужно, чтобы функция внутри которой она вызывается была асинхронной!!!
    Ответ написан
    4 комментария
  • Как называется расширение файла для запуска html на компьютере без браузера?

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

    Подробнее тут.
    Ответ написан
    Комментировать
  • Как создать коллекцию файлов FileList?

    @zkrvndm Автор вопроса
    Боты, парсеры, расширения
    Лайфхак для создания коллекции файлов FileList:
    // Создадим простой текстовый файл:
    var data = 'Здесь текст для файла или положите в переменную Blob';
    var file = new File([data], 'primer.txt', {type: 'text/plain'});
    
    // Создаем коллекцию файлов:
    var dt = new DataTransfer();
    dt.items.add(file);
    var file_list = dt.files;
    
    console.log('Коллекция файлов создана:');
    console.dir(file_list);
    
    // Вставим созданную коллекцию в реальное поле:
    document.querySelector('input[type="file"]').files = file_list;

    В переменную data вместо текста, можно положить в том числе и Blob - это особенность функции new File() которая первым параметром может принять как массив из текстов, так и массив из Blob.

    Фактически лайфхак выше позволяет нам JavaScript-ом скачать любой какой угодно файл со своего сайта и вставить его абсолютно в любое поле <input type="file"> - что просто архиполезно для браузерных ботов.

    Также способ выше можно применить для редактирования уже выбранных пользователем файлов. Например, если надо из поля выбора файлов убрать какие-то определенные файлы и при этом не фиктивно, а реально.

    Огромное спасибо пользователю Mmx Symfony, который нарыл это решение где-то в недрах иностранных сайтов. Сам я в свое время сколько не искал везде был ответ, что это невозможно, а оказалось, что нихрена подобного =)
    Ответ написан
    8 комментариев
  • File_get_contents не работает. Что я делаю не так?

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

    Попробуйте и вы:
    https://yandex.ru/search/touch/?text=file_get_cont...
    Ответ написан
  • Существует ли загрузчик файлов через сеть tor?

    @zkrvndm
    Боты, парсеры, расширения
    Когда ты запускаешь Tor он создает в системе локальный socks5-прокси, для того чтобы скачать что-нибудь тебе надо просто обратиться к этому прокси. Либо ты можешь написать расширение для Tor браузера, чтобы качал файлы.
    Ответ написан
    1 комментарий

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

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