20 самых лучших сайтов для изучения python
Содержание:
- Введение
- Python просто понять и изучить
- Почему Python так популярен?
- Шаг 1 — Разбираем Flask
- Установка и настройка среды разработки Python/Django
- Программы обучения профессии «Python-разработчик»
- Бот лайкающий посты на сайте.
- Коллекции в Python
- Наука о данных и машинное обучение
- «Язык программирования PYTHON для начинающих» от egoroff_channel
- Библиотеки и фреймворки
- Установка Django через pipenv
- Реальные примеры
- Изучаем Python: куда дальше?
- Python VS PHP
Введение
- Django — это веб-фреймворк, написанный на Python.
- Python — это высокоуровневый интерпретируемый язык программирования общего назначения.
- API (Application Programming Interface, интерфейс приложения) — это набор правил и механизмов, посредством которых приложение или его части взаимодействуют с другими приложениями.
- REST (Representational State Transfer) — это программная архитектура интерфейсов REST.
Как сказано в диссертации Роя Филдинга: «REST — это архитектурный стиль, который в основном использует существующие технологии и протоколы интернета. Попросту говоря, это представление данных для клиента в подходящем для него формате.»
Следовательно, RESTful + API (интерфейс) является широко используемой терминологией для реализации такой архитектуры и связанных с ней ограничений (например, в веб-сервисах).
Вот пример запроса из интерфейса Github:
Вы получите примерно следующее:
{ "login": "joshuadeguzman", "id": 20706361, "node_id": "MDQ6VXNlcjIwNzA2MzYx", "avatar_url": "https://avatars1.githubusercontent.com/u/20706361?v=4", "gravatar_id": "", "url": "https://api.github.com/users/joshuadeguzman", "html_url": "https://github.com/joshuadeguzman", "followers_url": "https://api.github.com/users/joshuadeguzman/followers", "following_url": "https://api.github.com/users/joshuadeguzman/following{/other_user}", "gists_url": "https://api.github.com/users/joshuadeguzman/gists{/gist_id}", "starred_url": "https://api.github.com/users/joshuadeguzman/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/joshuadeguzman/subscriptions", "organizations_url": "https://api.github.com/users/joshuadeguzman/orgs", "repos_url": "https://api.github.com/users/joshuadeguzman/repos", "events_url": "https://api.github.com/users/joshuadeguzman/events{/privacy}", "received_events_url": "https://api.github.com/users/joshuadeguzman/received_events", "type": "User", "site_admin": false, "name": "Joshua de Guzman", "company": "@freelancer", "blog": "https://joshuadeguzman.me", "location": "Manila, PH", "email": null, "hireable": true, "bio": "Android Engineer at @freelancer. Building tools for humans.", "public_repos": 75, "public_gists": 2, "followers": 38, "following": 10, "created_at": "2016-07-28T15:19:54Z", "updated_at": "2019-06-16T10:26:39Z" }
Получен набор данных в формате JSON.
JSON ( JavaScript Object Notation) — это открытый файловый формат, в котором обычный текст используется для передачи объектов данных, состоящих из пар атрибут-значение и типов данных массива. Конечно, существуют и другие форматы, такие как XML, INI, CSV и так далее. Но на сегодняшний день, JSON, благодаря своей интуитивной и понятной структуре, применяется крайне широко вне зависимости от того, какой язык программирования используется.
Python просто понять и изучить
Вам точно стоит попробовать Python, если вы никогда не писали код, но хотите получить первую работающую программу как можно быстрее. Самый простой пример — программа, которая выводит на экран заданную фразу. Вот как выглядит ее код на трёх разных языках. Сравните количество и понятность строк кода.
“Java” справляется в 5 строк, используем множество скобок.
“C” работает похоже, хоть строк и немного меньше:
Python использует одну понятную строку:
Конечно, это не значит, что так будет всегда. Есть программы посложнее, но в них всё ещё можно разобраться, если немного знать английский. Например, вот программа, которая умеет отправлять электронные письма:
Почему Python так популярен?
Одна из самых привлекательных черт Python – интерпретируемость. Интерпретируемый язык программирования — тот, который не требует компиляции программы перед запуском.
Интерпретатор может запускать код Python на любом компьютере. Это же значит, что программист способен быстро увидеть результат. С другой стороны, это значит, что Python медленнее компилируемых языков, таких как C. Причина в том, что Python работает не прямо на ПК.
- Из-за того что Python является интерпретируемым языком программирования, тестирование маленьких блоков кода и перемещение их между разными платформами — простая задача. А из-за совместимости с большинством операционных систем язык еще и универсален.
- для начинающих. Это высокоуровневый язык программирования, с которым разработчик может сосредоточиться на том, что нужно сделать, а не на том, как именно. Это одна из основных причин, почему занимает меньше времени по сравнению с остальными языками.
- Python похож на английский, поэтому его проще учить в сравнении с другими языками. Также разработчикам проще читать и запоминать синтаксис этого языка.
- Python поддерживает написание скриптов, но также может быть использован для создания крупных коммерческих приложений. Основной залог популярности Python – это надежность. Будучи высокоуровневым языком программирования, он позволяет сосредоточиться на основных возможностях приложений. А остальными задачами занимается сам язык.
Теперь должно быть понятно, почему Python – один из самых любимых языков программирования среди разработчиков, специалистов в сфере Data Science и хакеров.
Ключевой фактор — гибкость и объектно-ориентированные особенности. Это одна из причин, почему Python используется в таких отраслях, как машинное обучение и Data Science.
Шаг 1 — Разбираем Flask
Flask — это микрофреймворк для веб-разработки. “Микро” означает, что он очень простой. С ним не идет никаких заранее устанавливаемых внешних библиотек и инструментов. Обычно Flask используют с MongoDB, что позволяет лучше управлять базами данных и историей. Думаю, для введения достаточно. Ведь на самом деле нам интересно то, как он работает, верно? Давайте перейдем к этому. Но перед этим нам нужно разобраться с одним фундаментальным понятием, касающимся фреймворка Flask, маршрутизацией.
Маршруты это всего лишь особые пути. Давайте представим, что вы зашли на сайт и хотите перейти в раздел Mac на . Почему серверы Apple показывают вам именно страницу с подробностями об устройствах Mac? Вероятнее всего, потому что у них на сервере работает веб-приложение, которое распознает, что кто-то, находясь на , перешел в раздел сайта , обрабатывает этот запрос и отправляет пользователю некоторые страницы, чаще всего индексный файл в этом разделе.
Установка и настройка среды разработки Python/Django
На этом этапе мы видим перед собой приветственное окно приложения с предложением создать новый проект, открыть существующий или же импортировать из системы контроля версий. Нас же пока интересует первый пункт – Create New Project. Нажимаем его и переходим в созданию нового проекта.
Теперь нам необходимо задать имя нового проекта и выбрать местоположение. Название всегда лучше выбирать такое, чтобы в будущем, когда вы будете работать с несколькими проектами и периодически возвращаться к доработке предыдущих вам было легче ориентироваться и понимать где какой проект хранится.
Вторая строчка Interpreter отвечает за выбор установленного в системе интерпретатора языка Python. Их может быть несколько, но пока мы не будем вдаваться в нюансы. Сразу отмечу, что для каждого проекта лучше создавать отдельную виртуальную среду (VirtualEnv), которая будет содержать установленные модули, необходимые для конкретного проекта и их настройки и версии не будут влиять на другие проекты. Давайте создадим новую VirtualEnv нажав на шестеренке справа и выбрав пункт Create VirtualEnv.
Для VirtualEnv так же необходимо задать имя, выбрать расположение в файловой системе и версию интерпретатора Python, которая будет использоваться. Я предпочитаю виртуальной среде давать имена аналогичные проекту, чтобы так же легко можно было разобраться для какого проекта она была создана.
Нажимаем ОК и ждем пока закончится процесс создания виртуальной среды. После нажимаем на кнопку Create внизу справа и запускаем процесс создания проекта.
Далее откроется окошко среды разработки, которое сигнализирует о том, что проект создан и теперь мы может переходить к разработке сайта на Django.
Для дальнейших манипуляций открываем Терминал, нажав на кнопку внизу слева.
Программы обучения профессии «Python-разработчик»
Полноценное обучение с нуля до уровня junior-программиста. На многих программах обучения имеется вступительное тестирование на умение пользоваться ПК.
Программа Разработчик Python от otus:
- Если вы писали личные проекты на Python, но нет опыта промышленной разработки
- Дадутся объяснения следующих вопросов:
- Как писать простой и идиоматичный код, за который не будет мучительно стыдно?
- Как тестировать и поддерживать код на Python?
- Как написать приложение, которое не умрёт под нагрузкой?
После прохождения курса у вас останется:
- 1 мини веб-проект
- богатый список литературы для ознакомления и углубления знаний программистов
- код и материалы занятий, соединенные вместе в виде jupyter-ноутбуков
- видеозаписи всех вебинаров занятий
- проектная работа на интересную вам тему
Цена 56000₽ для новых клиентов otus (скидка 4000₽ в течение 7 дней после регистрации).
Программа Профессия Python-разработчик от skillbox:
- Научитесь с нуля программировать на Python
- Изучите основы вёрстки сайтов и web-приложений
- Освойте популярный фреймворк Django
- Изучите асинхронное программирование для написания высокопроизводительных приложений
- Реальный опыт разработки — Реализация искусственного интеллекта роботов для оптимального сбора ресурсов — Вёрстка landing page
Цена 93600₽
Программа Факультет Python-разработки от GeekUniversity:
- Проектно-ориентированное обучение
- Совместная разработка
- Год опыта Python-разработки
- Множество необходимых для работы навыков
- Умение создавать клиент-серверные приложения для Desktop
- Навыки прототипирования мобильных приложений
- Навыки верстки сайтов на HTML, CSS, Bootstrap
- Навыки frontend-разработки на Javascript и JQuery
- Умение создавать сайты на Django Framework
- Знание алгоритмов и структур данных
- Умение работать в команде, знание методологий разработки: Agile, Scrum
- Умение работать с GIT
- Навыки успешного прохождения собеседований и общения с заказчиками
- Навыки проектирования архитектуры, использования шаблонов проектирования
- Умение писать «чистый» код
- Имеются бесплатные подготовительные курсы для тех, кто не сможет пройти тестирование на знания базовых понятий программирования
Бот лайкающий посты на сайте.
Последовательность действий у нас следующая.
- Зайти на сайт under-prog.ru (открыть браузер)
- Пройтись по каждому из постов.
- Нажать кнопку лайк, если она не нажата.
- Закрыть браузер.
Первый пункт мы уже сделали, перейдем ко второму.
Пройтись по каждому из постов.
Зайдите на сайт, и нажмите кнопку F12.
У вас откроются инструменты разработчика. Изучив разметку, мы понимаем, что все посты находятся в теге article.
Сейчас нам нужно получить ссылку, на каждый пост. Для этого будем использовать этот css селектор.
Данный селектор указывает:
- На элемент с тегом a
- который находится находится внутри тега h2 с классом entry-title
- тот, в свою очередь, находится внутри тега header с классом entry-header
- тег header находится внутри тега div с классом blog-entry-content
- тот, находится в теге div
- тег div находится внутри тега article
Теперь, дополним бота.
Разберем новую функцию.
Данная функция ищет элементы по css селектору. В результате своей работы, она возвращает массив элементов.
В-общем, мы из этого массива, достали первый элемент, и при помощи функции get_attribute(), получили значение атрибута href (ссылка на пост).
И вывели его на экран.
Запустите скрипт, в консоли должна появится ссылка на первый пост.
Если закинуть массив элементов в цикл, то получится извлечь ссылки на все посты.
Отлично, ссылки на все посты получены, осталось всем этим постам, поставить лайк.
Нажать кнопку лайк, если она не нажата
Сначала перекопируем наши ссылки в отдельный массив. Замените это:
На это:
Далее напишем код, отвечающий за нажатие кнопки лайк.
Разберем данные строки.
Данная строка ищет кнопку с помощью css_селектора, и получает строку с названиями классов нашей кнопки.
Далее, при помощи функции find (стандартная функция python), мы получаем индекс подстроки ‘wp_ulike_btn_is_active‘, если не удалось найти подстроку, функция find возвращает -1, этим мы и воспользовались в нашем условии. Т.е. если атрибут ‘class‘ не содержит подстроку ‘wp_ulike_btn_is_active‘, то.
Кликаем по кнопке лайк.
Осталось закрыть браузер, делается это с помощью функции quit().
Бот завершен, запустите скрипт, и наслаждайтесь автоматизацией.
Коллекции в Python
Python не реализует массивы так, как это делают другие языки, такие как C и Java. Вместо этого используются списки с переменной длиной и смешанными типами данных. Тем не менее, вы можете определить массивоподобные структуры для числовых типов данных:
import array as python_array a = python_array.array('d', )
К элементам можно получить доступ, используя их индекс:
print(a) print(a) a = 2222
Просто помните, что индексы начинаются с нуля. Вы можете использовать len(), чтобы получить длину массива:
print(len(a)) # вывести длину массива
Как упоминалось выше, массивы в Python отличаются от других языков. Массивы Python не имеют фиксированной длины. Вы всегда можете динамически удалять и добавлять элементы:
# Add three elements to the end of the array # Добавление элементов в конец массива a.append(10) a.append(20) a.append(30) # Remove the first three element # Удаляем первые три элемента a.pop(0)
Полный список функций смотрите в официальной документации Python.
Массив, упомянутый выше, представляет собой оптимизированную специальную форму списка, которая принимает только числовые значения того же типа. Поэтому список может использоваться точно так же, как массив, но вы не ограничены использованием одного типа данных:
li = ]
Как видите, «li» может содержать что угодно в любое время. Все остальные функции, упомянутые выше, работают точно так же, как и для массивов.
Другой тип коллекции — это кортеж. В отличие от элементов в списке, элементы в кортеже не могут быть изменены при инициализации:
# Note the round brackets instead of the square ones
# Обратите внимание на круглые скобки вместо квадратных
tu = (1, 2, 3, «cat», «dog», «parrot»)
Операции вставки, обновления и удаления не будут работать, но элементы по-прежнему будут доступны с помощью их индекса.
Следующая важная структура данных — это множество. Элементы, содержащиеся в нем, не могут быть проиндексированы, как раньше, но вы всегда можете добавить новые элементы и удалить существующие из него. Вы также можете проверить, является ли значение элементом множества:
s = {"pie", "bread", "steak"} print(s.pop()) s.add(30) print(len(s)) s.pop() print(len(s))
Функция pop() здесь не принимает никаких параметров и возвращает удаленный элемент. Вы можете вставить новые элементы с помощью метода add(). Опять же, полный список функций смотрите в .
Последняя структура данных — это словарь. Эта коллекция связывает два значения вместе в отношении ключ-значение, где на каждое значение можно ссылаться, используя уникальный ключ:
telephone_book = { "Peter":9238172, "Laura":1119823, "Mark":9952174, "Liz":8009822 } print("Laura\'s phone number is:") print(telephone_book)
Значения могут быть изменены таким же образом, и len() даст вам длину структуры. Вы можете добавлять элементы, используя новый ключ в качестве индекса и присваивая ему значение:
telephone_book = 5557281 print("Ben\'s phone number is:") print(telephone_book)
Вы можете использовать pop() вместе с ключом, чтобы удалить объект, как со списками.
Наука о данных и машинное обучение
Python хорошо подходит для манипулирования данными, анализа и реализации сложных алгоритмов. Синтаксический анализ и визуализация данных обычно представляют собой простые функции или несколько строк кода с библиотеками Python, такими как NumPy, scipy, scikit-learn и т.д.
Python можно использовать в приложениях с интенсивным использованием данных и машинном обучении, используя множество популярных библиотек, таких как:
- NumPy
- Pandas
- Matplotlib
- seaborn
Есть много инструментов глубокого обучения, которые поддерживают Python. Некоторые популярные библиотеки и фреймворки:
- TensorFlow
- PyTorch
- Keras
Еще одна причина, по которой Python популярна, заключается в том, что даже сложные модели машинного обучения могут быть реализованы с помощью 20-40 строк кода.
«Язык программирования PYTHON для начинающих» от egoroff_channel
Пройти курс
Продолжительность: 80 видеозанятий.
Подтверждающий прохождение документ: нет.
Форма обучения: видеоуроки.
Программа обучения:
- Установка нужного программного обеспечения.
- Программирование на языке Python.
- Объекты. Арифметические операции.
- Переменные в Python. Основные операторы.
- Операции ввода-вывода.
- Способы деления.
- Логические операторы.
- Строковый тип и работа с ним.
- Использование списков.
- Условный оператор if.
- Функция range и итераторы.
- Циклы.
- Установка и применение дополнительных библиотек.
- Методы сортировки.
- Вложенные циклы.
- Вложенные списки.
- Треугольник Паскаля. Коэффициенты для Бинома Ньютона.
- Словари и работа с ними.
- Кортежи и способы их обработки.
- Пользовательские функции и их вызов.
- Область видимости.
- Рекурсивные функции.
- Лямбда-функция и лямбда-выражение.
- Генераторы и итераторы.
- Коллекции и их сортировка.
- Спецсимволы.
- Установка дополнительных модулей в Python.
- Разновидности вызываемых объектов.
- Работа с каталогами и файлами.
- Замыкания.
- Декораторы функций.
- Подготовка данных к передаче.
- Работа со сторонними программами.
Чему научитесь:
- освоите основы синтаксиса языка Python;
- познакомитесь с принципами ООП;
- научитесь взаимодействовать с другими приложениями;
Преимущества курса:
- подробный разбор каждой темы;
- курс подойдёт как новичкам, так и опытным разработчикам;
- возможность изучения в любое время;
- не требуется регистрация.
Библиотеки и фреймворки
В Python есть уже встроенные библиотеки, поставляемые вместе с интерпретатором. Они служат для расширения возможностей разработчика при написании программ. Также есть огромное количество внешних библиотек и фреймворков, которые можно подключить и использовать.
Такое количество библиотек дает преимущество, и способствует популярности Python. Например, высокоуровневая библиотека Pandas. Назначение Pandas – это обработка и анализ данных. Она используется в таких профессиях как Data Science и продолжает активно развиваться.
Для того, чтобы жизнь разработчика была легче, разработано множество веб фреймворков. Они позволяют автоматизировать рутинные процессы и задачи. Также фреймворки дают готовую структуру для написания web приложений.
Python бибиотека Pandas
Одним из самых популярных фреймворков с открытым свободным кодом является Django. С его помощь можно не добавлять разные библиотеки отдельно, а установить большинство стандартных функций одним пакетом. В 2010 году с помощью фреймворка Django был создан Instagram и в 2012 году Facebook купил его за миллиард долларов.
Pyramid является еще одним open-source популярным фреймворком. Он универсальный, и дает возможность работать с большими и малыми приложениями. У него хорошее и понятное руководство или пособие. Pyramid используется в тех случаях, когда не требуется разработки полноценной CMS, а хватает веб приложения. Этот фреймворк позволяет быстро собрать проект.
Установка Django через pipenv
Для того чтобы оценить в действии, создадим новую директорию и установим Django. Первым делом переместимся на рабочий стол Desktop. Там будет создана новая директория , куда нам нужно будет попасть при помощи команды .
Shell
$ cd ~/Desktop
$ mkdir django
$ cd django
1 2 3 |
$cd~Desktop $mkdirdjango $cddjango |
Теперь используем Pipenv для инсталляции Django.
Shell
$ pipenv install django==3.0
1 | $pipenv install django==3.0 |
Если загляните внутрь нашей папки, то увидите, что в ней появилось два новых файла: и . Теперь у нас есть вся информация, необходимая для создания нового виртуального окружения, однако пока ничего не активировано. Исправим положение через .
Shell
$ pipenv shell
1 | $pipenv shell |
При работе на Ubuntu вы увидите, что название текущей директории в командной строке взято в скобки. Это значит, что виртуальное окружение активировано. Будучи внутри папки , перед знаком командной строки мы увидим .
Стоит иметь в виду, что из-за в системе Windows, сейчас нет возможности получить визуальное подтверждение об активации виртуального окружения. Однако в следующей секции можно запустить — тогда станет ясно, что виртуальное окружение Django установлено должным образом.
Shell
(django) $
1 | (django)$ |
Все работает! Теперь создаем новый проект Django под названием при помощи следующей команды. Не забудьте в конце поставить точку.
Shell
(django) $ django-admin startproject test_project .
1 | (django)$django-admin startproject test_project. |
Немного остановимся на причине использования точки (.) в предыдущей команде. Если вы просто запустите то Django по умолчанию создаст следующую структуру:
Структура
Shell
└── test_project
├── manage.py
└── test_project
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 2 3 4 5 6 7 |
└──test_project ├──manage.py └──test_project ├──__init__.py ├──settings.py ├──urls.py └──wsgi.py |
Как видите, создается новая директория , в ней файл и еще одна директория . Чувствуется повторение, ведь ранее мы уже создали директорию на рабочем столе и переместились в нее. Будет лучше выполнить команду с точкой на конце. Это нужно для установки в данную конкретную папку — на сей раз результат будет таков:
Структура
Shell
├── manage.py
└── test_project
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 2 3 4 5 6 |
├──manage.py └──test_project ├──__init__.py ├──settings.py ├──urls.py └──wsgi.py |
Стоит отметить, что по сути особого значения не имеет, будет ли на конце команды точка или нет, однако но некоторые разработчики предпочитают ее включать.
Осталось убедиться, что все работает. Для этого запустим локальный веб-сервер Django.
Shell
(django) $ python manage.py runserver
1 | (django)$python manage.pyrunserver |
Мы получим такой ответ:
Shell
Watching for file changes with StatReloader
Performing system checks…
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.
May 05, 2020 — 12:36:09
Django version 3.0, using settings ‘test_project.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
1 2 3 4 5 6 7 8 9 10 11 12 |
Watching forfilechanges with StatReloader Performing system checks… System check identified no issues(silenced). You have17unapplied migration(s).Your project may notwork properly untilyou apply the migrations forapp(s)admin,auth,contenttypes,sessions. Run’python manage.py migrate’toapply them. May05,2020-123609 Django version3.0,using settings’test_project.settings’ Starting development server athttp127.0.0.18000 Quit the server with CONTROL-C. |
При посещении откроется следующая страница:
Приветственная страница Django
Для остановки локального сервера используйте комбинацию . После этого выйти из виртуального окружения можно при помощи команды .
Shell
(django) $ exit
1 | (django)$exit |
Вновь активировать виртуальное окружение можно в любое время. — для этого используется команда в терминале.
Если вы сталкиваетесь с виртуальными окружениями впервые, сейчас они могут показаться немного запутанными, но не беспокойтесь — по ходу изучения все прояснится. Базовый принцип строится на установке новых пакетов через , их активации с и выхода через по мере завершения процесса.
Будет не лишним отметить, что через командную строку за раз можно активировать только одно виртуальное окружение. Мы будем создавать новое виртуальное окружение для каждого проекта. По этой причине перед созданием нового проекта не забывайте выходить из текущего окружения через или открывайте другие вкладки для новых проектов.
Реальные примеры
Существует различные причины и варианты необходимости использования сбора (скрэпинга) данных в Интернете. Позвольте мне перечислить некоторые из них:
- сбор данных со страницы электронного магазина, чтобы определить имеется ли в наличии одежда, которую вы хотите купить, со скидкой
- сравнить цены нескольких брендов одежды, собирая данные о них с вэб-страниц
- стоимость авиабилетов может меняться несколько раз в течение дня. Можно сканировать веб-сайт и дождаться момента, когда цена будет снижена
- проанализировать веб-сайты, чтобы определить, должна ли быть стартовая стоимость продажи низкой или высокой, чтобы привлечь больше участников на аукцион или коррелирует ли длительность проведения аукциона с более высокой ценой конечной ценой продажи
Изучаем Python: куда дальше?
Чтобы быстро усвоить азы Питона, предоставленного в уроке материала достаточно. Конечно, этого мало, дабы стать специалистом. Поэтому придется самостоятельно дома или при помощи дополнительных курсов углублять знания. Выбор за вами, но некоторые рекомендации мы дадим.
Какие темы освоить в первую очередь? Приводим список тем и команд для новичков:
- типы данных в Python;
- необязательные и ключевые аргументы функций (*args, **kwargs), лямбда-выражения (lambda);
- объекты и классы, инициализация;
- основные встроенные модули (functools, math, string, sys, os, collections, time);
- генераторы и итераторы (yield, iter);
- работа с разными файлами (csv, изображения, текст);
- исключения и ошибки (exceptions);
- списковые включения (list comprehension);
- работа с сетью (requests, BeautifulSoup).
В дополнительных источниках ниже приведен перечень книг и сайтов, которые помогут вам в дальнейшем развитии. Если будут трудности, можно вообще начинать с литературы, где в заголовках встречаются фразы «для детей», «для школьников», «для чайников».
Потом стоит переходить к серьезным трудам (типа М. Лутца), ознакомлению с популярными фреймворками и библиотеками (Django, flask, pandas).
Python VS PHP
Когда речь заходит о разработке парсеров, все вспоминают PHP и Python – именно данные языки работают на стороне сервера. Несмотря на то, что множество программ всё ещё работает на PHP, в настоящий момент гораздо выгоднее пользоваться Питоном. Сейчас Python применяется такими известными порталами, как YouTube, Instagram, Facebook, Google, Netflix.
Парсинг сайтов на Python имеет массу преимуществ:
Язык Python имеет более ясную архитектуру. Он заставляет программиста писать более чистый и продуманный код. Здесь не требуется глубокого знания нюансов и особенностей, чтобы создавать элегантную кодировку.
Язык Python проще в освоении. Он имеет подробную документацию и большое сообщество программистов, которые готовы помочь новичку. Но помимо прочего синтаксис языка интуитивно понятный и от этого простой.
Библиотеки Python более универсальные. Их сравнительно немного, обычно в парсинге используются Scrapy, Beautiful-Soup, Selenium. Библиотеки решают все распространённые задачи. Фреймворки безопасны, быстры, стабильны и надёжны в работе.
Простые, интуитивно понятные инструменты отладки. Наиболее широко распространён Python Debugger (PDB). Также плюсом является то, что для отладки требуется меньше времени.
Управление пакетами в Python сделано гораздо удобнее. Их проще создавать, обмениваться ими
Это крайне важно, когда парсер должен обмениваться информацией с другими программами.
В Python имеются лямбда-функции, которые могут создаваться и вызываться в любом месте. Другими словами, для этого не требуется привязка к идентификатору.
Кроме того, Python очень универсален
Он годится для построения нейросетей, обработки фото и видео, а также для любых других задач парсинга.