SPB Git

spb/job-ka

Public

lassonde : repli HTML pour la description (le site maison n'expose aucun JSON-LD JobPosting — corps de page après le h1, cache purgé et re-synchronisé : 31/31 offres décrites, 0 quarantaine)

Simon-Pierre Boucher committed (Aug 19, 2026) parent 6bec010 Browse files

1 changed file +12 −1

Unified Split
modified jobka/connectors/lassonde.py +12 −1
@@ -43,9 +43,20 @@ class LassondeConnector(BaseConnector):
43 LIST_URL = "https://www.lassonde.com/fr/emplois/" 43 LIST_URL = "https://www.lassonde.com/fr/emplois/"
44 44
45 def _fetch_detail(self, url: str) -> dict: 45 def _fetch_detail(self, url: str) -> dict:
46+ """Le site n'expose pas de JSON-LD JobPosting (seulement un @graph
47+ WebPage) : la description vient du corps de la page (après le h1)."""
46 html = self.get(url).text 48 html = self.get(url).text
47 node = _jsonld.extract_jobposting(html) 49 node = _jsonld.extract_jobposting(html)
48− return _jsonld.jobposting_fields(node) if node else {} 50+ if node:
51+ return _jsonld.jobposting_fields(node)
52+ m = re.search(r"</h1>(.*?)<(?:footer|form|nav)\b", html, re.S | re.I)
53+ if not m:
54+ return {}
55+ from ..schema import clean_html
56+ text = clean_html(m.group(1))
57+ if len(text) < 100:
58+ return {}
59+ return {"description_html": m.group(1)[:60000]}
49 60
50 def fetch(self) -> list[JobPosting]: 61 def fetch(self) -> list[JobPosting]:
51 page = self.get(self.LIST_URL).text 62 page = self.get(self.LIST_URL).text
52 63
Menu

Theme