Python Skills 🐍
302 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
Что нужно для парсинга сайта?

Разберем некоторые аспекты парсинга сайтов.

Самое главное — базовые знания html, понимание работы сайтов в целом. Под каждую отдельную задачу пишется отдельный скрипт. Если сайт изменит свой дизайн, пишем новый алгоритм, старый не будет работать корректно.

Алгоритм

1. Изучаем структуру
2. Вычленяем нужные данные
3. Пишем алгоритм
4. Пишем интерфейс работы с алгоритмом
5. Упаковываем в приложение

Библиотеки

BeautifulSoup
Используем, когда с сайта нужна только конкретная информация. Никаких лишних движений, есть страница на ней информация. Для простых задач и как часть комплексных лучший выбор.

Selenium
Используем, когда пишем полноценный парсер с выбором данных, диапазоном и дополнительным функционалом. Отправка сообщений, вход в аккаунт, скачивание файлов, отправка различных запросов.

Использовать их можно в комплекте, Selenium делает действия на странице, BeautifulSoup ее анализирует.
How to reverse a list in Python
Работаем с атрибутами объектов

Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr.

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

Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.

На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.

#классы #атрибуты
Ютуб VS Книги.
Итерируемый счетчик

Еще один классный итератор из itertools — это count, который генерирует бесконечную последовательность чисел.

В аргументах можно задать значения start и step: первый отвечает за начальное значение, а второе за шаг, как и в range.

Обычно count редко используют с циклом for. Чаще можно встретить случаи с функциями типа zip или map.

#itertools
Коротко о моих комментариях в коде 🌚
Хранение хеша и соли

Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.

Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Функция zip подробнее

Разберемся как работает функция zip и где еще ее можно применять. Функция без с одним аргументом вернет собранные элементы, по одному в каждом. Чтобы увидеть внутренности объекта преобразуем его в list.

Полезно использовать, когда нужно собрать несколько кортежей или списков.
🐍 А вы знали? Выпуск №1.

В других языках такой конструкции нет, поэтому неудивительно - если для вас она выглядит слегка необычно.
Хеширование паролей Python
Для Python 3.x

Здесь пароли будут хешироваться для последующего сохранения в базе данных.

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

salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).