Развернуть
Языки программирования, библиотеки и модули:
Парсинг - библиотеки и модули:
Тестирование:
CI/CD:
Парсер работает в 4-х режимах (каждый режим обрабатывается одноименной функцией):
- сбор версий языка и их авторов -
whats_new
- сбор информации о версиях -
latest_versions
- сбор информации о стандартах PEP -
pep
- скачивание документации -
download
Работа каждой функции осуществляется путём её вызова в консоли. При вызове функции из п.1-3 возможны различные представления вывода информации:
- стандартный вывод в консоль;
- вывод в консоль, оформленный в виде таблицы;
- сохранение вывода в .csv-файл (помещается в папку results (см. Структура проекта))
При вызове функции скачивания документации (п.4) zip-архив сохраняется в папке downloads (см. Структура проекта))
Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).
- Клонировать репозиторий с GitHub:
git clone https://github.com/alexpro2022/bs4_parser_pep.git && cd bs4_parser_pep
-
Создайте и активируйте виртуальное окружение:
- Если у вас Linux/macOS
python -m venv venv && source venv/bin/activate
- Если у вас Windows
python -m venv venv && source venv/Scripts/activate
-
Установите в виртуальное окружение все необходимые зависимости из файла requirements.txt:
python -m pip install --upgrade pip && pip install -r requirements.txt
- Перейдите в папку src:
cd src
Вызывается командой -h или --help:
python main.py -h
Выводится описание парсера, и его аргументы:
usage: main.py [-h] [-c] [-o {pretty,file}] {whats-new,latest-versions,download,pep}
Парсер документации Python
positional arguments:
{whats-new,latest-versions,download,pep}
Режимы работы парсера
options:
-h, --help show this help message and exit
-c, --clear-cache Очистка кеша
-o {pretty,file}, --output {pretty,file}
Дополнительные способы вывода данных
Осуществляется по команде python main.py
и добавлений нужной функции режима работы, например:
python main.py latest-versions
"2022-12-13_17-49-40 - [INFO] - Парсер запущен!"
"2022-12-13_17-49-40 - [INFO] - Аргументы командной строки: Namespace(mode='latest-versions', clear_cache=False, output=None)"
Ссылка на документацию Версия Статус
https://docs.python.org/3.12/ 3.12 in development
https://docs.python.org/3.11/ 3.11 stable
https://docs.python.org/3.10/ 3.10 stable
https://docs.python.org/3.9/ 3.9 security-fixes
https://docs.python.org/3.8/ 3.8 security-fixes
https://docs.python.org/3.7/ 3.7 security-fixes
https://docs.python.org/3.6/ 3.6 EOL
https://docs.python.org/3.5/ 3.5 EOL
https://docs.python.org/2.7/ 2.7 EOL
https://www.python.org/doc/versions/ All versions
"2022-12-13_17-49-40 - [INFO] - Парсер завершил работу."
При использвании доп. команд (-o pretty
или -o file
) вывод будет либо оформлен в виде таблицы и
выведен в консоль, либо сохранён файлом с расширеним .csv соответственно:
python main.py latest-versions -o pretty
"2022-12-13_17-51-41 - [INFO] - Парсер запущен!"
"2022-12-13_17-51-41 - [INFO] - Аргументы командной строки: Namespace(mode='latest-versions', clear_cache=False, output='pretty')"
+--------------------------------------+--------------+----------------+
| Ссылка на документацию | Версия | Статус |
+--------------------------------------+--------------+----------------+
| https://docs.python.org/3.12/ | 3.12 | in development |
| https://docs.python.org/3.11/ | 3.11 | stable |
| https://docs.python.org/3.10/ | 3.10 | stable |
| https://docs.python.org/3.9/ | 3.9 | security-fixes |
| https://docs.python.org/3.8/ | 3.8 | security-fixes |
| https://docs.python.org/3.7/ | 3.7 | security-fixes |
| https://docs.python.org/3.6/ | 3.6 | EOL |
| https://docs.python.org/3.5/ | 3.5 | EOL |
| https://docs.python.org/2.7/ | 2.7 | EOL |
| https://www.python.org/doc/versions/ | All versions | |
+--------------------------------------+--------------+----------------+
"2022-12-13_17-51-41 - [INFO] - Парсер завершил работу."
Данный вывод действителен только для режимов пп 1-3, смотри
Для удаления проекта выполните следующие действия:
cd ../.. && rm -fr bs4_parser_pep && deactivate
bs4_parser_pep:
| .flake8
| .gitignore
| pytest.ini
| README.md
| requirements.txt
|
+---src
| | configs.py <-- конфигуратор команд командной строки, логов
| | constants.py <-- Дефолтные ссылки, форматы, пути и т.д.
| | exceptions.py <-- Кастомные исключения
| | main.py <-- Основная логика парсера
| | outputs.py <-- Обработчик вывода ф-ий
| | utils.py <-- Обработчик ошибок
| | __init__.py
| |
| +---downloads <-- директория для сохранения zip-архивов
| |
| +---logs <-- директория для хранения логов
| |
| +---results <-- директория для сохранения csv-файлов
| |
| \---__pycache__
|
+---tests <-- Тесты, активирующиеся по команде pytest из корневой директории
|
\---venv