Поддельный User-Agent

Одна из примитивных защит сайтов от парсинга – проверка HTTP заголовка User-Agent, который содержит наименование веб-браузера или клиента, делающего запрос. Если этого заголовка нет, то сервер может не выполнить запрос, раскусив, что его делает робот, а не человек. Обход защиты – имитация реального User-Agent браузера библиотекой fake_useragent. Установка: Использование: ua.random – агент случайного браузера (с…

С Новым Годом 2020!

​​Дорогие друзья! 🎄 Поздравляю вас всех с наступающим Новым Годом 2020! 🎄 Желаю вам счастья, здоровья, хорошего настроения! Поменьше багов в коде и побольше интересных проектов! А также любви, путешествий, достижений, новых открытий и позитивных эмоций! Я искренне рад и благодарен, что вы читаете наш сайт и канал. В новом году я буду радовать вас…

​​Unicode по имени

Вы знали, что в строке Python 3 можно вставлять символы по их названию в юникод-таблице? Допустим нужны вам стрелки: Найти юникод символы и их имена удобно с помощью онлайн-сервисов.  Да, конечно, в Python 3 вы можете прямо в код вставлять любые юникод символы без их кодов и имен. Но профессиональнее – вставлять символы по именам,…

​​collections.deque – очередь Python

deque – коллекция двухсторонней очереди, которая похожа на список, за исключением того, что добавлять и удалять элементы можно либо в начало (слева), либо в конец (справа). Реализована обычно через двусвязный список. Благодаря этому операции добавления или удаления элемента с любого конца deque имеют сложность O(1). Доступ к произольному элементу – O(n). Создание: Методы Метод append(x)…

Узнать тип type() и проверить тип isinstance()

В Python у нас утиная динамическая типизация, поэтому бывает что нужно узнать тип переменной. Функция type() возвращает тип аргумента или, учитывая, что в Python – все класс, то класс аргумента. Результат можно сравнить с известным типом: Можно создать экземпляр объекта того же класса, что и переменная: ⚠️ Нужно знать! type() не принимает во внимание наследование.…