CLI-приложение для сбора информации с официальных сайтов документации Python и PEP.
Парсер получает данные о версиях Python и материалах раздела What's New, собирает статистику по статусам PEP и позволяет скачать архив актуальной документации Python.
Парсер поддерживает четыре режима работы:
whats-new— получение информации о материалах раздела What's New in Python;latest-versions— получение списка версий Python и их текущих статусов;download— загрузка архива актуальной HTML-документации Python;pep— сбор статистики по статусам документов PEP.
Дополнительно поддерживаются:
- кеширование HTTP-запросов;
- очистка кеша перед запуском;
- вывод результатов в терминал;
- табличный вывод;
- сохранение результатов в CSV;
- логирование работы приложения.
- Python 3.12
- BeautifulSoup4
- Requests
- Requests Cache
- lxml
- PrettyTable
- tqdm
- pytest
Клонировать репозиторий:
git clone https://github.com/shibaevvv/bs4_parser_pep.git
cd bs4_parser_pepСоздать виртуальное окружение:
python -m venv venvАктивировать виртуальное окружение.
Linux/macOS:
source venv/bin/activateWindows:
venv\Scripts\activateОбновить pip:
python -m pip install --upgrade pipУстановить зависимости:
pip install -r requirements.txtОбщий формат запуска:
python src/main.py {whats-new,latest-versions,download,pep} [-c] [-o {pretty,file}]| Режим | Описание |
|---|---|
whats-new |
Информация о материалах раздела What's New in Python |
latest-versions |
Версии Python и их статусы |
download |
Загрузка архива актуальной документации Python |
pep |
Статистика по статусам PEP |
-c, --clear-cache — очистить кеш HTTP-запросов перед запуском.
-o pretty — вывести результат в терминал в виде таблицы.
-o file — сохранить результат в CSV-файл в директории src/results.
Без параметра -o результат выводится в терминал обычным текстом.
Справка по аргументам:
python src/main.py -hПолучить статистику по статусам PEP:
python src/main.py pep -o prettyПример результата:
+-------------+------------+
| Статус | Количество |
+-------------+------------+
| Active | 35 |
| Accepted | 22 |
| Final | 348 |
| Provisional | 1 |
| Draft | 47 |
| Superseded | 25 |
| Deferred | 38 |
| Withdrawn | 69 |
| Rejected | 127 |
| Итого | 712 |
+-------------+------------+
Получить список версий Python:
python src/main.py latest-versionsСохранить информацию о материалах What's New в CSV:
python src/main.py whats-new -o fileЗапустить парсер с предварительной очисткой кеша:
python src/main.py pep -cДля запуска тестов:
pytestВладимир Шибаев
- GitHub: https://github.com/shibaevvv
- Telegram: https://t.me/shibaevvv
- Email: shibaev.vladimir@gmail.com