Skip to content

Commit de36e7a

Browse files
authored
Merge pull request #824 from flairNLP/fix-boersenzeitung
Fix `BoersenZeitung`
2 parents 7f565b7 + 7b140cb commit de36e7a

File tree

4 files changed

+109
-5
lines changed

4 files changed

+109
-5
lines changed

src/fundus/publishers/de/boersenzeitung.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import datetime
22
import re
3-
from typing import List, Optional
3+
from typing import List, Optional, Union
44

55
from lxml.cssselect import CSSSelector
66
from lxml.etree import XPath
@@ -18,11 +18,11 @@ class BoersenZeitungParser(ParserProxy):
1818
class V1(BaseParser):
1919
VALID_UNTIL = datetime.date(2024, 12, 9)
2020

21-
_paragraph_selector = CSSSelector("storefront-content-body .no-tts p")
21+
_paragraph_selector = CSSSelector(".no-tts p")
2222
_subheadline_selector = XPath("//p[contains(@class, 'interline')]")
23-
_summary_selector = CSSSelector("storefront-html.excerpt > div")
23+
_summary_selector = XPath("//storefront-html[@class='excerpt']/div")
2424

25-
_topic_selector = CSSSelector("a[href^='/thema'] > span")
25+
_topic_selector = XPath("//a[contains(@href, '/thema')]/span")
2626
_paywall_selector = CSSSelector("storefront-html.paywall-headline > div")
2727

2828
_title_bloat_pattern = re.compile(r"\|.*")
@@ -70,7 +70,7 @@ def images(self) -> List[Image]:
7070
)
7171

7272
class V1_1(V1):
73-
VALID_UNTIL = datetime.date.today()
73+
VALID_UNTIL = datetime.date(2025, 10, 1)
7474

7575
@attribute
7676
def authors(self) -> List[str]:
@@ -79,3 +79,14 @@ def authors(self) -> List[str]:
7979
@attribute
8080
def publishing_date(self) -> Optional[datetime.datetime]:
8181
return generic_date_parsing(self.precomputed.meta.get("article:published_time"))
82+
83+
class V1_2(V1_1):
84+
VALID_UNTIL = datetime.date.today()
85+
86+
_summary_selector = XPath("//div[@class='pxp-html excerpt']")
87+
88+
_topic_selector = XPath("//div[contains(@class,'taglist')]//button")
89+
90+
@attribute
91+
def authors(self) -> List[str]:
92+
return generic_author_parsing(self.precomputed.ld.bf_search("author"))

tests/resources/parser/test_data/de/BoersenZeitung.json

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,5 +193,94 @@
193193
"VR Payment",
194194
"Wero"
195195
]
196+
},
197+
"V1_2": {
198+
"authors": [
199+
"Reuters",
200+
"Thorsten Kramer"
201+
],
202+
"body": {
203+
"summary": [
204+
"Alexander Wynaendts soll weitere vier Jahre den Aufsichtsrat der Deutschen Bank anführen. Das Gremium nominierte den ehemaligen CEO von Aegon für eine weitere Amtszeit."
205+
],
206+
"sections": [
207+
{
208+
"headline": [],
209+
"paragraphs": [
210+
"Der Aufsichtsrat der Deutschen Bank hat Alexander Wynaendts für eine weitere vierjährige Amtszeit nominiert. Das Gremium habe dies einstimmig beschlossen, teilte das Geldhaus mit. Wynaendts werde sich bei der Hauptversammlung 2026 zur Wiederwahl stellen. Er leitet den Aufsichtsrat der Bank seit Mai 2022, seine erste Amtszeit läuft damit im kommenden Jahr aus. Aktuell ist er zudem Mitglied im Verwaltungsrat von Air France-KLM und Uber Technologies."
211+
]
212+
},
213+
{
214+
"headline": [
215+
"Seit Mai 2022 Chefkontrolleur"
216+
],
217+
"paragraphs": [
218+
"Wynaendts war im Mai 2022 zum Nachfolger von Paul Achleitner zum Aufsichtsratschef gewählt worden. Er erhielt damals auf der digitalen Hauptversammlung der Bank eine Zustimmung von 97,84%. „Die Leitung des Aufsichtsrats der Deutschen Bank ist ein großes Privileg, und ich danke meinen Kolleginnen und Kollegen für das Vertrauen“, ließ sich Wynaendts in einer Pressemitteilung der Bank zitieren.",
219+
"Der Vorstandsvorsitzende Christian Sewing freut sich auf die Fortsetzung der Zusammenarbeit. „Alex Wynaendts hat mit seiner umfassenden Erfahrung, seiner Expertise und seinem Netzwerk maßgeblich zur erfolgreichen Entwicklung der Deutschen Bank in den vergangenen Jahren beigetragen. Wir haben ihn als starken Aufsichtsratsvorsitzenden kennengelernt, der uns im Vorstand stets auf konstruktive Weise fördert und fordert.“"
220+
]
221+
},
222+
{
223+
"headline": [
224+
"Einst bei ABN Amro und Aegon"
225+
],
226+
"paragraphs": [
227+
"Wynaendts war von 2008 bis 2020 Vorstandschef des Versicherungskonzerns Aegon. Begonnen hatte er seine Laufbahn bei ABN Amro, bei der er 13 Jahre im Private Banking und Investmentbanking in Amsterdam und London tätig war. Wynaendts wechselte 1997 zu Aegon und bekleidete dort verschiedene Führungspositionen, bevor er 2008 CEO wurde."
228+
]
229+
}
230+
]
231+
},
232+
"images": [
233+
{
234+
"versions": [
235+
{
236+
"url": "https://c02.purpledshub.com/uploads/sites/35/2025/11/000-Wynaendts-scaled.jpg?w=300&webp=1",
237+
"query_width": null,
238+
"size": {
239+
"width": 300,
240+
"height": 0
241+
},
242+
"type": "image/jpeg"
243+
},
244+
{
245+
"url": "https://c02.purpledshub.com/uploads/sites/35/2025/11/000-Wynaendts-scaled.jpg?w=600&webp=1",
246+
"query_width": null,
247+
"size": {
248+
"width": 600,
249+
"height": 0
250+
},
251+
"type": "image/jpeg"
252+
},
253+
{
254+
"url": "https://c02.purpledshub.com/uploads/sites/35/2025/11/000-Wynaendts-scaled.jpg?w=900&webp=1",
255+
"query_width": null,
256+
"size": {
257+
"width": 900,
258+
"height": 0
259+
},
260+
"type": "image/jpeg"
261+
},
262+
{
263+
"url": "https://c02.purpledshub.com/uploads/sites/35/2025/11/000-Wynaendts-scaled.jpg?w=1200&webp=1",
264+
"query_width": null,
265+
"size": {
266+
"width": 1200,
267+
"height": 0
268+
},
269+
"type": "image/jpeg"
270+
}
271+
],
272+
"is_cover": true,
273+
"description": "Alexander Wynaendts soll weitere vier Jahre Chefaufseher der Deutschen Bank bleiben.",
274+
"caption": "Alexander Wynaendts soll weitere vier Jahre Chefaufseher der Deutschen Bank bleiben.",
275+
"authors": [],
276+
"position": 974
277+
}
278+
],
279+
"publishing_date": "2025-11-05 17:09:17+00:00",
280+
"title": "Deutsche Bank nominiert Aufsichtsratschef für zweite Amtszeit",
281+
"topics": [
282+
"Aufsichtsrat",
283+
"Deutsche Bank"
284+
]
196285
}
197286
}
Binary file not shown.

tests/resources/parser/test_data/de/meta.info

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@
4747
"url": "https://www.boersen-zeitung.de/banken-finanzen/wero-besteht-praxistest-im-digitalen-handel",
4848
"crawl_date": "2024-12-16 14:21:36.405815"
4949
},
50+
"BoersenZeitung_2025_11_06.html.gz": {
51+
"url": "https://www.boersen-zeitung.de/personen/deutsche-bank-nominiert-aufsichtsratschef-fuer-zweite-amtszeit",
52+
"crawl_date": "2025-11-06 23:58:40.309266"
53+
},
5054
"BusinessInsiderDE_2024_01_29.html.gz": {
5155
"url": "https://www.businessinsider.de/wirtschaft/international-business/wie-gross-ist-evergrande-chinas-sterbender-immobilienriese/",
5256
"crawl_date": "2024-01-29 22:53:02.986279"

0 commit comments

Comments
 (0)