Skip to content

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

Notifications You must be signed in to change notification settings

alexpro2022/bs4_parser_pep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages