fix(parsers): ленивый импорт bs4 в CyberLeninka + добавить в зависимости
Прод-воркер падал на index.run_parser с 'No module named bs4': парсер импортил beautifulsoup4 на верхнем уровне, а в образе worker-indexer его нет. Но bs4 нужен только для fetch_article_details (детали статьи), а заливке (fetch+transform) — нет. - импорт bs4 сделан ленивым (внутри fetch_article_details) → заливка работает даже без bs4 в образе; - beautifulsoup4 добавлен в worker-indexer/requirements.txt (для деталей статьи). Это была вторая причина, почему CyberLeninka никогда не наполняла базу (первая — GET вместо POST, 405). Проверено вживую: fetch без bs4 в пути работает. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,6 @@ from typing import Any
|
||||
|
||||
import httpx
|
||||
from base import BaseParser
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -172,6 +171,9 @@ class CyberLeninkaParser(BaseParser):
|
||||
response = self.client.get(url)
|
||||
response.raise_for_status()
|
||||
|
||||
# Ленивый импорт: заливке (fetch/transform) bs4 не нужен, только деталям статьи
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
soup = BeautifulSoup(response.text, "html.parser")
|
||||
meta = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user