IP-адрес
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
👍13
Узнаем кодировку текста
Думаю, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывался набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировкам. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы получили ответ по запросу к серверу, взяли его содержимое и проверили кодировку через этот метод.
Подписывайтесь на канал 👉@pythonofff
Думаю, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывался набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировкам. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы получили ответ по запросу к серверу, взяли его содержимое и проверили кодировку через этот метод.
Подписывайтесь на канал 👉@pythonofff
👍4🔥1
Как скопировать всё содержимое внешнего файла?
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
Подписывайтесь на канал 👉@pythonofff
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
Подписывайтесь на канал 👉@pythonofff
👍4
Время учить Python. 7 декабря старт Подготовительного курса!
✅ Упражняемся в браузерном тренажере --- учимся понимать и писать код на Python.
✅ Погружаемся в реальный продакшен --- создаем конвертер валют вместе с наставником.
✅ Размещаем изменения на GitHub --- получаем основу для своего первого пет-проекта.
База по Python за 14 дней. На практике. За 990 рублей.
✅ Упражняемся в браузерном тренажере --- учимся понимать и писать код на Python.
✅ Погружаемся в реальный продакшен --- создаем конвертер валют вместе с наставником.
✅ Размещаем изменения на GitHub --- получаем основу для своего первого пет-проекта.
База по Python за 14 дней. На практике. За 990 рублей.
👍1
Отлавливаем ошибки с помощью assert
Инструкция assert принимает логическое выражение и необязательное сообщение. Она используется для проверки типов, значений аргумента и вывода функции, а также для отладки, поскольку останавливает программу в случае ошибки.
Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.
Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл.
В примере мы проверили, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
Подписывайтесь на канал 👉@pythonofff
Инструкция assert принимает логическое выражение и необязательное сообщение. Она используется для проверки типов, значений аргумента и вывода функции, а также для отладки, поскольку останавливает программу в случае ошибки.
Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.
Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл.
В примере мы проверили, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
Подписывайтесь на канал 👉@pythonofff
👍3🔥1
Enum перечисления
Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Подписывайтесь на канал 👉@pythonofff
Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Подписывайтесь на канал 👉@pythonofff
👍3
Подборка Telegram каналов для программистов🔥
Сохраняйте, чтоб не потерять.
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/xakep_1 Статьи из "Хакера"
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360
DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео
Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
Excel лайфхак📌
https://t.me/Excel_lifehack
Сохраняйте, чтоб не потерять.
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/xakep_1 Статьи из "Хакера"
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360
DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео
Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
Excel лайфхак📌
https://t.me/Excel_lifehack
Синтаксис
Синтаксис представления списков обеспечивает простой и надежный способ для создания новых списков из уже существующих. Допустим, нам нужен новый список, в котором каждый элемент старого списка будет умножен на 3. При помощи цикла for мы можем это сделать.
Подписывайтесь на канал 👉@pythonofff
Синтаксис представления списков обеспечивает простой и надежный способ для создания новых списков из уже существующих. Допустим, нам нужен новый список, в котором каждый элемент старого списка будет умножен на 3. При помощи цикла for мы можем это сделать.
Подписывайтесь на канал 👉@pythonofff
👍2🤔2❤1🥰1
Атрибуты функций
Сейчас будет шок для новичков, но функции — это обычные объекты, у которых просто реализован метод __call__. Именно он и позволяет выполнять синтаксис с вызовом через круглые скобки.
И соотвественно у функций, как и у любых других объектов, можно устанавливать атрибуты и даже другие методы. Но сейчас затронем только атрибуты.
Как вариант, в примере я реализовал счетчик вызова функции, но без использования глобальных переменных — всё с помощью атрибута в объекте функции.
Вообще практического применения в продакшне я не припомню, но сам этот факт знать полезно для общего понимания структуры языка и устройства объектов.
Подписывайтесь на канал 👉@pythonofff
Сейчас будет шок для новичков, но функции — это обычные объекты, у которых просто реализован метод __call__. Именно он и позволяет выполнять синтаксис с вызовом через круглые скобки.
И соотвественно у функций, как и у любых других объектов, можно устанавливать атрибуты и даже другие методы. Но сейчас затронем только атрибуты.
Как вариант, в примере я реализовал счетчик вызова функции, но без использования глобальных переменных — всё с помощью атрибута в объекте функции.
Вообще практического применения в продакшне я не припомню, но сам этот факт знать полезно для общего понимания структуры языка и устройства объектов.
Подписывайтесь на канал 👉@pythonofff
👍7
Выход пользователя из профиля
Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.
В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.
Подписывайтесь на канал 👉@pythonofff
Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.
В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.
Подписывайтесь на канал 👉@pythonofff
👍10
Разделители для целых чисел
Трудно визуально различить целые числа подобные 10000000 и 100000000. Использовать запятые, как в английском языке, не получится.
Но Python позволяет использовать нижнее подчеркивание как разделитель для улучшения читабельности.
Например, 1_000_000 будет интерпретироваться как целое число 1000000.
Подписывайтесь на канал 👉@pythonofff
Трудно визуально различить целые числа подобные 10000000 и 100000000. Использовать запятые, как в английском языке, не получится.
Но Python позволяет использовать нижнее подчеркивание как разделитель для улучшения читабельности.
Например, 1_000_000 будет интерпретироваться как целое число 1000000.
Подписывайтесь на канал 👉@pythonofff
🤯5🔥4
kwargs в Python?
Обе звездочки () являются важным элементом, так как kwargs представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком. Форма kwargs с двумя звездочками используется в качестве параметра для отправки в функции списка аргументов переменной длины без ключевого слова.
Подписывайтесь на канал 👉@pythonofff
Обе звездочки () являются важным элементом, так как kwargs представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком. Форма kwargs с двумя звездочками используется в качестве параметра для отправки в функции списка аргументов переменной длины без ключевого слова.
Подписывайтесь на канал 👉@pythonofff
🔥3
Заглушка в коде
В ходе исполнения оператора pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.
Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.
Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.
Подписывайтесь на канал 👉@pythonofff
В ходе исполнения оператора pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.
Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.
Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.
Подписывайтесь на канал 👉@pythonofff
👍6
VK поддержит NEF
В отдельном плейлисте официального сообщества NERC ICPC покажут трансляцию евразийского финала чемпионата по программированию ICPC в прямом эфире.
В финальных состязаниях NEF (Northern Eurasia Finals), которые начнутся сегодня в 17:00, встретятся 300 лучших команд. 160 из них примет Санкт-Петербург. Все желающие смогут насладиться состязанием благодаря пятичасовой онлайн-трансляции в официальном сообществе чемпионата. Зрители смогут в режиме реального времени наблюдать за тем, как команды выполняют задания, и попробовать попробовать решить их одновременно с финалистами, а также услышать разбор решений от профессионального жюри.
В отдельном плейлисте официального сообщества NERC ICPC покажут трансляцию евразийского финала чемпионата по программированию ICPC в прямом эфире.
В финальных состязаниях NEF (Northern Eurasia Finals), которые начнутся сегодня в 17:00, встретятся 300 лучших команд. 160 из них примет Санкт-Петербург. Все желающие смогут насладиться состязанием благодаря пятичасовой онлайн-трансляции в официальном сообществе чемпионата. Зрители смогут в режиме реального времени наблюдать за тем, как команды выполняют задания, и попробовать попробовать решить их одновременно с финалистами, а также услышать разбор решений от профессионального жюри.
👍3
newspaper3k - с этим вы еще не встречались
Приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он помогает извлекать статьи и связанные мета-данные из многих разных источников. Так же можно извлечь изображения, текста и имена авторов.
В нём даже имеется встроенная NLP-функциональность.
В этом случае, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга так же в следующем проекте, лучше сэкономьте своё время и силы и загрузите newspaper
Подписывайтесь на канал 👉@pythonofff
Приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он помогает извлекать статьи и связанные мета-данные из многих разных источников. Так же можно извлечь изображения, текста и имена авторов.
В нём даже имеется встроенная NLP-функциональность.
В этом случае, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга так же в следующем проекте, лучше сэкономьте своё время и силы и загрузите newspaper
Подписывайтесь на канал 👉@pythonofff
🔥5🤯1😱1
Data Science | Machinelearning - самый большой русскоязычный канал с полезными материалами на такие темы как, Machine Learning, Data Science, Алгоритмы, Python. Так же часто публикуются крутые 🔥 вакансии.
👉 Вам сюда: @devsp
А любителям читать статьи в оригинале вот сюда:
👉 @ds_international
Добро пожаловать!
👉 Вам сюда: @devsp
А любителям читать статьи в оригинале вот сюда:
👉 @ds_international
Добро пожаловать!
Временные файлы
В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями.
Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект.
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
Подписывайтесь на канал 👉@pythonofff
В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями.
Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект.
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
Подписывайтесь на канал 👉@pythonofff
👍5🔥3
Давно хотели просмотреть содержимое внешнего файла?
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
Подписывайтесь на канал 👉@pythonofff
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
Подписывайтесь на канал 👉@pythonofff
👍4
Скачиваем видео с YouTube
Пакет pytube предоставляет всю небходимую функциональность для скачивания видео с YouTube, а также для сбора всей информации о нем.
Для работы нам необходимо создать объект класса YouTube. Помимо ссылки на видео в конструктор можно передать в качестве параметров функции для обработки прогресса загрузки и завершения.
Большинство видео на ютубе не имеют аудиодорожки на потоках с высоким разрешением, свыше 720p — это связано с технологией передачи DASH, которую использует ютьюб. Решение данной проблемы покажем в следующем посте.
На картинке мы показали как отфильтровать потоки с прогрессивной передачей и выбрать из полученного списка с максимальным доступным разрешением до 720p.
Для загрузки выбранного потока используем функцию download(), в функцию можно передать в качестве параметров путь до директории для сохранения и имя файла.
Подписывайтесь на канал 👉@pythonofff
Пакет pytube предоставляет всю небходимую функциональность для скачивания видео с YouTube, а также для сбора всей информации о нем.
Для работы нам необходимо создать объект класса YouTube. Помимо ссылки на видео в конструктор можно передать в качестве параметров функции для обработки прогресса загрузки и завершения.
Большинство видео на ютубе не имеют аудиодорожки на потоках с высоким разрешением, свыше 720p — это связано с технологией передачи DASH, которую использует ютьюб. Решение данной проблемы покажем в следующем посте.
На картинке мы показали как отфильтровать потоки с прогрессивной передачей и выбрать из полученного списка с максимальным доступным разрешением до 720p.
Для загрузки выбранного потока используем функцию download(), в функцию можно передать в качестве параметров путь до директории для сохранения и имя файла.
Подписывайтесь на канал 👉@pythonofff
👍7
Выполнение внешнего кода
Любой внешний код Python из блокнота Jupyter можно запускать с помощью команды %run.
Подписывайтесь на канал 👉@pythonofff
Любой внешний код Python из блокнота Jupyter можно запускать с помощью команды %run.
Подписывайтесь на канал 👉@pythonofff
👍5