AI Assistant Parsers Core - это ядро-библиотека, предоставляющая набор общих абстрактных классов и утилит для разработки парсеров, специализированных под различные высшие учебные заведения (ВУЗы).
- Абстрактные классы парсеров (
ABCParser) - Универсальный парсер (
UniversalParser) - Объекты для простой реализации парсеров (
SimpleSelectDomainBaseParser,SimpleFindDomainBaseParser,SimpleSelectPageBaseParser,SimpleFindPageBaseParser) - Утилиты для обработки HTML (
clean_one_by_select,clean_all_by_select,rename_all_by_select,convert_tables_to_divsи др.) - Абстрактные классы "Refiners", которые улучшают пост- и пре- обработку HTML
- Универсальные "Refiners" для постобработки (
CleanPostParsingRefiner,RestructurePostParsingRefiner) - Утилиты общего назначения (
converts_relative_links_to_absolute,normalize_url,universal_clean_htmlи др.)
pip install ai_assistant_parsers_core- Python 3.10+
from bs4 import BeautifulSoup
from ai_assistant_parsers_core.parsers.utils.clean_blocks import clean_one_by_select
from ai_assistant_parsers_core.parsers.utils.restructure_blocks import rename_all_by_select
from ai_assistant_parsers_core.parsers import SimpleSelectDomainBaseParser
class WWWRGUSTDomainParser(SimpleSelectDomainBaseParser):
"""Парсер для сайта ``https://rgust.ru/``"""
def __init__(self) -> None:
super().__init__(
supported_subdomains=["rgust.ru"], # Парсим страницы, которые не имеют поддомена
select_arguments=[
"section.content", # Тег, содержащий основной контент
],
)
def _clean_parsed_html(self, soup: BeautifulSoup) -> None:
clean_one_by_select(soup, ".breadcrumb") # Очищаем `.breadcrumb`
def _restructure_parsed_html(self, soup: BeautifulSoup) -> None:
rename_all_by_select(soup, "p.main-page-faculty-widget-programs-header", "h2") # Затем `p` HTML-тег на `h2`Примеры находятся в папке examples
[Ссылка]