Skip to content

vasilekx/bs4_parser_pep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Описание

Парсер собирает данные обо всех PEP-документах,сравниваетихстатуси записываетв файл,собираетинформациюо статусеверсии,скачиваетархивысдокументацией,атакжесобираетссылкинановостив Python.

Функции парсера:

  • Сброр ссылок на статьи о нововведениях в Python;
  • Сброр информации о версиях Python;
  • Скачивание архива с актуальной документацией;
  • Сброр статусов документов PEP и подсчёт статусов документов;
  • Вывод информации в терминал (в обычном и табличном виде) и сохранение результатов работы парсинга в формате csv;
  • Логирование работы парсинга;
  • Обработка ошибок в работе парсинга.

Применяемые технологии

Python Beautiful Soup 4

Порядок действия для запуска парсера

Клонировать репозиторий и перейти в папку в проектом:

git clone git@github.com:vasilekx/bs4_parser_pep.git
cd bs4_parser_pep

Создать и активировать виртуальное окружение:

python3 -m venv venv
  • Если у вас Linux/MacOS

    source venv/bin/activate
  • Если у вас windows

    source venv/scripts/activate

Установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Работа с парсером

Режимы работы

Сброр ссылок на статьи о нововведениях в Python:

python main.py whats-new

Сброр информации о версиях Python:

python main.py latest-versions

Скачивание архива с актуальной документацией:

python main.py download

Сброр статусов документов PEP и подсчёт статусов:

python main.py pep

Аргументы командной строки

Полный список аргументов:

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}
                        Режимы работы парсера

optional arguments:
  -h, --help            show this help message and exit
  -c, --clear-cache     Очистка кеша
  -o {pretty,file}, --output {pretty,file}
                        Дополнительные способы вывода данных

Директории для файлов с результатами парсинга

  • downloads - для архива с документацией Python;
  • results - для результатов парсинга;
  • logs - для логов.

Примеры работы парсинга:

Сброр информации о версиях Python с опцией вывода результата в табличном виде:

python main.py latest-versions -o pretty
"15.09.2022 21:35:50 - [INFO] - Парсер запущен!"
"15.09.2022 21:35:50 - [INFO] - Аргументы командной строки: Namespace(clear_cache=False, mode='latest-versions', output='pretty')"
+--------------------------------------+--------------+----------------+
| Ссылка на документацию               | Версия       | Статус         |
+--------------------------------------+--------------+----------------+
| https://docs.python.org/3.12/        | 3.12         | in development |
| https://docs.python.org/3.11/        | 3.11         | pre-release    |
| 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 |                |
+--------------------------------------+--------------+----------------+
"15.09.2022 21:35:50 - [INFO] - Парсер завершил работу."

Скачивание архива с актуальной документацией:

python main.py download
"15.09.2022 21:38:48 - [INFO] - Парсер запущен!"
"15.09.2022 21:38:48 - [INFO] - Аргументы командной строки: Namespace(clear_cache=False, mode='download', output=None)"
"15.09.2022 21:38:48 - [INFO] - Архив python-3.10.7-docs-pdf-a4.zip был загружен и сохранён: /Users/your_user/Documents/bs4_parser_pep/src/downloads/python-3.10.7-docs-pdf-a4.zip"
"15.09.2022 21:38:48 - [INFO] - Парсер завершил работу."

Сброр статусов документов PEP и подсчёт статусов документов с опцией вывода результата в csv-файл:

python main.py pep -o file
"15.09.2022 21:44:11 - [INFO] - Парсер запущен!"
"15.09.2022 21:44:11 - [INFO] - Аргументы командной строки: Namespace(clear_cache=False, mode='pep', output='file')"
"15.09.2022 21:44:14 - [INFO] - Несовпадающие статусы: https://peps.python.org/pep-0401 Статус в карточке: April Fool! Ожидаемые статусы: ['Rejected'] "
"15.09.2022 21:44:20 - [INFO] - Файл pep_2022-09-15_21-44-20.csv с результатами был сохранён: /Users/your_user/Documents/bs4_parser_pep/src/results/pep_2022-09-15_21-44-20.csv"
"15.09.2022 21:44:20 - [INFO] - Парсер завершил работу."

Содержимое файла pep_2022-09-15_21-44-20.csv:

Статус Количество
Active 36
Superseded 16
Withdrawn 54
Final 263
Rejected 118
Deferred 37
Accepted 40
Draft 30
Total 594

Автор

Владислав Василенко

About

Проект парсинга документов PEP и документации Python (CLI)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages