Что нужно для парсинга сайта?
Разберем некоторые аспекты парсинга сайтов.
Самое главное — базовые знания html, понимание работы сайтов в целом. Под каждую отдельную задачу пишется отдельный скрипт. Если сайт изменит свой дизайн, пишем новый алгоритм, старый не будет работать корректно.
Алгоритм
1. Изучаем структуру
2. Вычленяем нужные данные
3. Пишем алгоритм
4. Пишем интерфейс работы с алгоритмом
5. Упаковываем в приложение
Библиотеки
BeautifulSoup
Используем, когда с сайта нужна только конкретная информация. Никаких лишних движений, есть страница на ней информация. Для простых задач и как часть комплексных лучший выбор.
Selenium
Используем, когда пишем полноценный парсер с выбором данных, диапазоном и дополнительным функционалом. Отправка сообщений, вход в аккаунт, скачивание файлов, отправка различных запросов.
Использовать их можно в комплекте, Selenium делает действия на странице, BeautifulSoup ее анализирует.
Разберем некоторые аспекты парсинга сайтов.
Самое главное — базовые знания html, понимание работы сайтов в целом. Под каждую отдельную задачу пишется отдельный скрипт. Если сайт изменит свой дизайн, пишем новый алгоритм, старый не будет работать корректно.
Алгоритм
1. Изучаем структуру
2. Вычленяем нужные данные
3. Пишем алгоритм
4. Пишем интерфейс работы с алгоритмом
5. Упаковываем в приложение
Библиотеки
BeautifulSoup
Используем, когда с сайта нужна только конкретная информация. Никаких лишних движений, есть страница на ней информация. Для простых задач и как часть комплексных лучший выбор.
Selenium
Используем, когда пишем полноценный парсер с выбором данных, диапазоном и дополнительным функционалом. Отправка сообщений, вход в аккаунт, скачивание файлов, отправка различных запросов.
Использовать их можно в комплекте, Selenium делает действия на странице, BeautifulSoup ее анализирует.
Безопасный ввод и сохранение зашифрованных паролей в конфигах Linux: пишем скрипт на Python
https://habr.com/ru/company/macloud/blog/566748/
https://habr.com/ru/company/macloud/blog/566748/
Хабр
Безопасный ввод и сохранение зашифрованных паролей в конфигах Linux: пишем скрипт на Python
Как вывести свою систему на новый уровень безопасности с модулями python-gnupg и getpass4. Изображение : freeGraphicToday, via Pixabay. CC0. В условиях растущих требований к безопасности...
Работаем с атрибутами объектов
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции:
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
#классы #атрибуты
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции:
getattr
, setattr
, delattr
и hasattr
.По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В
setattr
также нужно передать новое значение для атрибута.На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
#классы #атрибуты
Итерируемый счетчик
Еще один классный итератор из
В аргументах можно задать значения
Обычно
#itertools
Еще один классный итератор из
itertools
— это count
, который генерирует бесконечную последовательность чисел.В аргументах можно задать значения
start
и step
: первый отвечает за начальное значение, а второе за шаг, как и в range
.Обычно
count
редко используют с циклом for
. Чаще можно встретить случаи с функциями типа zip
или map
.#itertools
Укажите причинну неработоспособности данного кода.
Anonymous Poll
22%
Имя CONST - служебное, создаёт константу, поэтому данная переменная не может быть изменена.
11%
Атрибут __slots__ должен быть кортежем строк, а не строкой.
8%
Атрибут CONST может быть изменён только через метод __init__
14%
Код работает, проблем нет.
14%
Ни один из вариантов.
3%
В классе VerySafe отсутствует словарь __dict__, поэтому атрибут CONST доступен только для чтения.
28%
Узнать ответ
Хранение хеша и соли
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Хеширование паролей Python
Для Python 3.x
Здесь пароли будут хешироваться для последующего сохранения в базе данных.
Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.
salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).
Для Python 3.x
Здесь пароли будут хешироваться для последующего сохранения в базе данных.
Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.
salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).