[ka6] fix connecteur jobillico: un 410/404 sur une page détail (offre retirée entre le sitemap et la visite) n'avorte plus tout le sync — skip de l'offre; erreurs serveur/réseau ponctuelles → repli cache périmé (pattern guichet_emplois)
1 changed file +18 −2
modified
jobka/connectors/jobillico.py
+18 −2
@@ -5,7 +5,7 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/jobillico.py |
| 6 | 6 | # Rôle : Connecteur portail — Jobillico (grand portail d'emploi québécois). |
| 7 | 7 | # AGRÉGATEUR : moins autoritaire qu'une page carrière (dedup). |
| 8 | −# Créé : 2026-08-18 Modifié : 2026-08-18 | |
| 8 | +# Créé : 2026-08-18 Modifié : 2026-08-25 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | """Portail Jobillico (jobillico.com). |
| 11 | 11 | |
@@ -23,6 +23,8 @@ from __future__ import annotations | ||
| 23 | 23 | import os |
| 24 | 24 | import re |
| 25 | 25 | |
| 26 | +import requests | |
| 27 | + | |
| 26 | 28 | from ..schema import JobPosting, is_quebec_location |
| 27 | 29 | from .base import BaseConnector |
| 28 | 30 | from . import _jsonld |
@@ -78,7 +80,21 @@ class JobillicoConnector(BaseConnector): | ||
| 78 | 80 | fresh[0] = True |
| 79 | 81 | return self._fetch_detail(u) |
| 80 | 82 | |
| 81 | − fields = self.detail(eid, key, _fn) | |
| 83 | + try: | |
| 84 | + fields = self.detail(eid, key, _fn) | |
| 85 | + except requests.HTTPError as exc: | |
| 86 | + code = getattr(exc.response, "status_code", 0) | |
| 87 | + if code in (404, 410): | |
| 88 | + # offre retirée entre le sitemap et la visite — | |
| 89 | + # normal et non bloquant : on saute cette offre | |
| 90 | + if fresh[0]: | |
| 91 | + details_used += 1 | |
| 92 | + continue | |
| 93 | + # erreur serveur ponctuelle (520…) : cache périmé, | |
| 94 | + # l'offre sera re-tentée au prochain cycle | |
| 95 | + fields = self.stale_detail(eid) | |
| 96 | + except (requests.ConnectionError, requests.Timeout): | |
| 97 | + fields = self.stale_detail(eid) | |
| 82 | 98 | if fresh[0]: |
| 83 | 99 | details_used += 1 |
| 84 | 100 | else: |
| 85 | 101 | |