feat(scraper): F1 — lista de motores SearXNG ampliada y configurable
Build & Deploy ResearchOwl / build-and-push (push) Successful in 7s

_search_searxng hardcodeaba engines=duckduckgo,google,bing,brave, lo
que ignoraba cualquier motor extra de la instancia (y dejaba la
búsqueda coja cuando brave cae en rate limit y DDG en CAPTCHA, ambos
observados en vivo). Ahora la lista vive en settings.searxng_engines
(env SEARXNG_ENGINES, tunable por GitOps sin rebuild).

Default ampliado con motores verificados contra la instancia el
2026-07-03: +startpage +mojeek +presearch +google news +bing news
+internet archive scholar. Medido con queries reales: ~2x resultados
y ~2x dominios únicos por ~+2s/query. Excluidos qwant (denied),
yahoo (roto), wikidata (0 en texto) y wayback machine (duplicados).

Sin cambios en k8s-manifests: use_default_settings:true ya trae todos
estos motores configurados. El fallback a DDG queda intacto.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ChemaVX
2026-07-03 15:36:04 +00:00
co-authored by Claude Fable 5
parent 228ea5c601
commit 200de018e4
2 changed files with 11 additions and 1 deletions
+10
View File
@@ -27,6 +27,16 @@ class Settings(BaseSettings):
searxng_url: str = Field(
"http://searxng-svc.researchowl.svc.cluster.local:8080/search",
)
# Motores que el scraper pide a SearXNG (todos vienen configurados por los
# defaults de la instancia, use_default_settings: true). Verificados en vivo
# 2026-07-03: la lista ampliada duplica resultados y dominios únicos (~2x)
# por ~+2s/query, y da redundancia cuando brave/DDG caen en rate limit o
# CAPTCHA. Excluidos: qwant (access denied), yahoo (roto), wikidata (0
# resultados en queries de texto), wayback machine (duplica contenido vivo).
searxng_engines: str = Field(
"duckduckgo,google,bing,brave,startpage,mojeek,presearch,"
"google news,bing news,internet archive scholar"
)
request_timeout: int = Field(30)
request_delay: float = Field(1.0) # seconds between requests
min_content_length: int = Field(200) # chars
+1 -1
View File
@@ -229,7 +229,7 @@ class ExhaustiveScraper:
params = {
"q": query,
"format": "json",
"engines": "duckduckgo,google,bing,brave",
"engines": settings.searxng_engines,
"language": "all",
}
headers = {