Skip to content

Latest commit

 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект парсинга pep

status codecov

Оглавление

Технологии

Развернуть

Языки программирования, библиотеки и модули:

Python argparse csv datetime enum logging pathlib re urllib

PrettyTable Requests_cache Tqdm

Парсинг - библиотеки и модули:

Beautiful_Soup

Тестирование:

Pytest Pytest-cov Coverage

CI/CD:

GitHub GitHub_Actions Telegram

⬆️Оглавление

Описание работы

Парсер работает в 4-х режимах (каждый режим обрабатывается одноименной функцией):

  1. сбор версий языка и их авторов - whats_new
  2. сбор информации о версиях - latest_versions
  3. сбор информации о стандартах PEP - pep
  4. скачивание документации - download

Работа каждой функции осуществляется путём её вызова в консоли. При вызове функции из п.1-3 возможны различные представления вывода информации:

  • стандартный вывод в консоль;
  • вывод в консоль, оформленный в виде таблицы;
  • сохранение вывода в .csv-файл (помещается в папку results (см. Структура проекта))

При вызове функции скачивания документации (п.4) zip-архив сохраняется в папке downloads (см. Структура проекта))

⬆️Оглавление

Установка:

Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).

  1. Клонировать репозиторий с GitHub:
git clone https://github.com/alexpro2022/bs4_parser_pep.git && cd bs4_parser_pep
  1. Создайте и активируйте виртуальное окружение:

    • Если у вас Linux/macOS
     python -m venv venv && source venv/bin/activate
    • Если у вас Windows
     python -m venv venv && source venv/Scripts/activate
  2. Установите в виртуальное окружение все необходимые зависимости из файла requirements.txt:

python -m pip install --upgrade pip && pip install -r requirements.txt
  1. Перейдите в папку 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

⬆️Оглавление

Автор

Aleksei Proskuriakov

⬆️Оглавление

Приложения:

Структура проекта

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

⬆️В начало

About

Синхронный парсер документов PEP на базе фреймворка Beautifulsoup4.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages