Скрипт представляет собой асинхронный web-сервер, построенный на aiohttp. Он принимает список адресов по которым размещены новостные статьи, анализирует их на присутствие триггерных слов и составляет отчёт о степени "желтушности".
Пока поддерживается только один новостной сайт - ИНОСМИ.РУ. Для него разработан специальный адаптер, умеющий выделять текст статьи на фоне остальной HTML разметки. Для других новостных сайтов потребуются новые адаптеры, все они будут находиться в каталоге adapters
. Туда же помещен код для сайта ИНОСМИ.РУ: adapters/inosmi_ru.py
.
В перспективе можно создать универсальный адаптер, подходящий для всех сайтов, но его разработка будет сложной и потребует дополнительных времени и сил.
Вам понадобится Python версии 3.7 или старше. Для установки пакетов рекомендуется создать виртуальное окружение.
Первым шагом установите пакеты:
pip install -r requirements.txt
Создайте каталог charged_list и положите в него текстовые файлы с триггерными словами. Пример.
python server.py
Чтобы отправить статьи на проверку, необходимо сделать GET запрос к серверу и указать адреса в параметрах запроса, через запятую:
your_host:port/urls=example_url1,example_url2
В ответ сервер пришлёт json с статусом обработки и результатами.
Для тестирования используется pytest, тестами покрыты фрагменты кода сложные в отладке: text_tools.py и адаптеры. Команды для запуска тестов:
python -m pytest adapters/inosmi_ru.py
python -m pytest text_tools.py
python -m pytest article_analysis.py
Код написан в учебных целях. Это урок из курса по веб-разработке — Девман.