Содержание пакета (3 курса)
1. WEB Парсинг на Python 4.90
Введение
4 урока
1.
Введение
↗
2.
Сколько можно заработать на парсинге?
↗
3.
Feedback от учеников
↗
4.
Содержание курса
↗
DOM дерево HTML
5 уроков
1.
Введение в DOM
↗
2.
Элементы и их виды
↗
3.
HTML Атрибуты
↗
4.
Поиск элементов на странице
↗
5.
Попрактикуемся
↗
Requests
9 уроков
1.
Введение в Requests
↗
2.
Метод requests.get() I
↗
3.
Метод requests.get() II
↗
4.
Объект Response
↗
5.
Статус коды
↗
6.
Работа с Exceptions
↗
7.
Request Sessions
↗
8.
HTTP Adapter
↗
9.
Fake User-Agent
↗
BeautifulSoup
12 уроков
1.
Введение в BeautifulSoup4
↗
2.
Установка и импорт
↗
3.
Приготовление супа
↗
4.
Основные методы BeautifulSoup
↗
5.
Квизы: Основные методы BeautifulSoup
↗
6.
Поиск узлов и элементов
↗
7.
Пагинация
↗
8.
Парсинг сайта с AJAX
↗
9.
Парсинг табличных данных
↗
10.
Сохраняем результат в Excel
↗
11.
Сохраняем результат в JSON
↗
12.
Парсим JSON
↗
Selenium
12 уроков
1.
Введение
↗
2.
Установка Selenium Webdriver
↗
3.
Опции и аргументы
↗
4.
Поиск элементов Selenium
↗
5.
Доп. задачи: Поиск элементов
↗
6.
Методы Selenium
↗
7.
Cookies в Selenium
↗
8.
Скроллинг страниц
↗
9.
Окна и вкладки
↗
10.
Ожидания явные и неявные
↗
11.
Доп. задачи: Явные и неявные ожидания
↗
12.
Drag and drop
↗
Асинхронный парсинг
9 уроков
1.
Введение в Asyncio
↗
2.
Установка, настройка, импорты
↗
3.
Asyncio начало
↗
4.
Цикл событий / event loop
↗
5.
Awaitable объекты
↗
6.
Основные методы и функции Asyncio
↗
7.
Aiohttp
↗
8.
Приготовление асинхронного супа
↗
9.
Aiofiles
↗
Парсим Telegram с Pyrogram
9 уроков
1.
Введение
↗
2.
Установка и авторизация
↗
3.
Основные методы pyrogram
↗
4.
Парсинг сообщений из группы/чата
↗
5.
Парсинг медиа из группы/чата
↗
6.
Парсинг участников группы/чата
↗
7.
Работа с прокси
↗
8.
Постоянный мониторинг сообщений в группе/чате
↗
9.
Поиск ключевых слов в большом количестве чатов/групп
↗
Парсим Telegram с Telethon
6 уроков
1.
Введение
↗
2.
Установка, настройка и импорты
↗
3.
Основные методы Telethon
↗
4.
Парсим данные участников группы
↗
5.
Парсим сообщения группы
↗
6.
Отправляем результат парсинга в телеграм
↗
Обход капчи
8 уроков
1.
Введение в CAPTCHA
↗
2.
Установка, настройка, импорты
↗
3.
Обход обычной капчи
↗
4.
Обход текстовой капчи
↗
5.
Обход reCAPTCHA
↗
6.
Обход Geetest v3
↗
7.
Обход Yandex Smart Captcha
↗
8.
Feedback
↗
2. Асинхронный Python 4.72
Начало
1 урок
1.
Введение
↗
Основы асинхронного программирования
6 уроков
1.
Введение в асинхронность
↗
2.
Основные преимущества asyncio
↗
3.
IO bound и CPU bound
↗
4.
В каких задачах полезно асинхронное программирование
↗
5.
В каких задачах бесполезно асинхронное программирование
↗
6.
GIL
↗
Awaitable объекты
7 уроков
1.
Основные элементы asyncio
↗
2.
Coroutines / Корутины
↗
3.
Task / Задачи
↗
4.
Future / Футуры
↗
5.
Awaitable объекты
↗
6.
Ключевое слово await
↗
7.
Цикл событий (event loop)
↗
Основы работы с Asyncio
15 уроков
1.
Основные методы asyncio
↗
2.
Запуск цикла событий
↗
3.
Асинхронный сон
↗
4.
Создание задач
↗
5.
Создание задач, часть 2
↗
6.
Одновременное выполнение корутин
↗
7.
Предотвращаем "зависание" корутин
↗
8.
Ожидание группы корутин
↗
9.
Получение результатов от группы задач по мере завершения
↗
10.
Создаём новый цикл событий
↗
11.
Устанавливаем цикл событий по умолчанию
↗
12.
Получаем ссылку на текущий цикл событий
↗
13.
Получаем доступ к текущему циклу событий
↗
14.
Запуск блокирующих функций в отдельном потоке
↗
15.
Контекстные переменные
↗
Работа с задачами / task
15 уроков
1.
Введение в задачи / task
↗
2.
Основные методы управления задачами / task
↗
3.
Проверка статуса задачи
↗
4.
Получение результата выполнения задачи
↗
5.
Работа с текущей задачей
↗
6.
Получение всех задач в цикле событий
↗
7.
Установка и получение имени задачи
↗
8.
Работа с исключениями внутри задачи
↗
9.
Работа с отменой задач
↗
10.
Получение информации о состоянии цикла событий и корутин
↗
11.
Работа с асинхронным стеком вызова
↗
12.
Работа Сallback функции
↗
13.
Защита корутины от отмены
↗
14.
Работа с группой задач TaskGroup()
↗
15.
Решаем задачи
↗
Асинхронные конструкции
2 урока
1.
async with
↗
2.
async for
↗
Проблемы синхронизации
5 уроков
1.
Состояние гонки
↗
2.
Атомарность операций
↗
3.
Мьютекс (mutex)
↗
4.
Решаем проблему состояния гонки
↗
5.
Deadlock
↗
Работа с очередями в Asyncio
4 урока
1.
Введение в очереди
↗
2.
Очередь FIFO
↗
3.
Очередь LIFO
↗
4.
Очередь Priority
↗
Базовые примитивы синхронизации Asyncio
7 уроков
1.
Введение в примитивы
↗
2.
Защита ресурса от одновременного доступа
↗
3.
Ожидание событий для синхронизации доступа
↗
4.
Синхронизация задач
↗
5.
Принцип простого семафора
↗
6.
Принцип ограниченного семафора
↗
7.
Реализация барьера для защиты одновременного доступа
↗
aiofiles
9 уроков
1.
Введение в асинхронное чтение файлов
↗
2.
Aiofiles введение
↗
3.
Основные методы и параметры аiofiles
↗
4.
Методы асинхронного файлового объекта
↗
5.
Контроль знаний
↗
6.
Основные методы аiofiles.os
↗
7.
Контроль знаний
↗
8.
Асинхронная работа с CSV-файлами
↗
9.
Решаем задачи
↗
aiohttp
9 уроков
1.
Введение в aiohttp
↗
2.
Методы клиентской сессии, часть 1
↗
3.
Методы клиентской сессии, часть 2
↗
4.
Жизненный цикл HTTP-запроса
↗
5.
Работа с Cookies
↗
6.
Работа с прокси
↗
7.
HTTP заголовки
↗
8.
Основы работы с исключениями в aiohttp
↗
9.
Решаем задачи
↗
3. Многопоточный Python 4.82
Введение в многопоточность
12 уроков
1.
Введение
↗
2.
Основные понятия
↗
3.
Что такое потоки
↗
4.
Что такое главный поток
↗
5.
Ожидание результата от потока
↗
6.
Ожидание выполнения потока
↗
7.
Имена потоков
↗
8.
Атрибуты потока
↗
9.
Хранение локальных данных потока
↗
10.
Атомарные операции
↗
11.
Поток-таймер
↗
12.
Вспомогательные функции для работы с потоками
↗
Работа с пулами потоков
12 уроков
1.
Что такое пулы потоков
↗
2.
Создание пула потоков
↗
3.
Отправка задач в пул потоков с помощью submit() и map()
↗
4.
Получаем результаты из пула потоков
↗
5.
Что такое Executors
↗
6.
Ожидание завершения задач
↗
7.
Инициализация рабочих потоков
↗
8.
Завершение работы пула потоков
↗
9.
Количество потоков
↗
10.
Жизненный цикл пула потоков
↗
11.
Тестирование и оптимальное количество потоков
↗
12.
ThreadPool vs AsyncIO
↗
Подробнее о Futures
8 уроков
1.
Что такое Futures
↗
2.
Объект Future
↗
3.
Методы Future
↗
4.
Жизненный цикл Future
↗
5.
Проверяем статус Future
↗
6.
Добавляем обратный вызов к Future
↗
7.
Получение исключений из Future
↗
8.
Всё об отмене Future
↗
Потокобезопасные очереди
5 уроков
1.
Введение в очереди
↗
2.
Queue
↗
3.
LifoQueue
↗
4.
PriorityQueue
↗
5.
SimpleQueue и исключения
↗
Управление потоками и синхронизация
8 уроков
1.
Блокировка взаимного исключения (Lock)
↗
2.
Реентерабельная блокировка (RLock)
↗
3.
Синхронизация по событиям (Event)
↗
4.
Синхронизация с условием (Condition)
↗
5.
Семафор в потоках (Semaphore)
↗
6.
Как остановить все задачи
↗
7.
Остановить все задачи, если одна завершилась неудачей
↗
8.
Барьер в потоках (Barrier)
↗
Advanced Locking - Продвинутое блокирование
5 уроков
1.
Конкуренция за блокировку
↗
2.
Чередование блокировок
↗
3.
Разделение блокировок
↗
4.
Повторная попытка блокировки с откатом
↗
5.
Накладные расходы поточной блокировки
↗
Практическое применение и продвинутые техники
3 урока
1.
Последовательная и параллельная загрузка
↗
2.
Одновременная загрузка файлов
↗
3.
Обработка исключений во время выполнения задачи
↗
Безопасность потоков
7 уроков
1.
Потокобезопасный счетчик
↗
2.
Потокобезопасная печать
↗
3.
Потокобезопасное логирование
↗
4.
Потокобезопасный словарь
↗
5.
Потокобезопасный список
↗
6.
Потокобезопасная запись в файл
↗
7.
Непостоянные переменные
↗
Создание и работа с пулом в модуле multiprocessing
14 уроков
1.
Введение
↗
2.
ThreadPoolExecutor vs ProcessPoolExecutor
↗
3.
Синхронное выполнение одиночной задачи
↗
4.
Асинхронное выполнение одиночной задачи
↗
5.
Синхронная обработка коллекций
↗
6.
Асинхронная обработка коллекций
↗
7.
Итеративная синхронная обработка задач
↗
8.
Итеративная синхронная обработка задач без сохранения порядка
↗
9.
Синхронная обработка задач с множеством аргументов
↗
10.
Асинхронная обработка задач с множеством аргументов
↗
11.
Какой метод выбрать?
↗
12.
Сравнение методов
↗
13.
Лучшие практики использования пула процессов
↗
14.
Распространенные ошибки
↗