From b14dcda7a69598c7bb57afe142261246d6eb5ad3 Mon Sep 17 00:00:00 2001 From: Adrian Breiding Date: Mon, 5 Feb 2024 10:44:33 +0100 Subject: [PATCH] Address changes requested by reviewer --- src/fundus/publishers/de/__init__.py | 8 ++-- .../publishers/de/braunschweiger_zeitung.py | 39 ++++++++++++------- tests/resources/parser/test_data/de/BSZ.json | 4 +- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/fundus/publishers/de/__init__.py b/src/fundus/publishers/de/__init__.py index 3f6cdd89c..a7f5bb31b 100644 --- a/src/fundus/publishers/de/__init__.py +++ b/src/fundus/publishers/de/__init__.py @@ -6,7 +6,7 @@ from .berliner_zeitung import BerlinerZeitungParser from .bild import BildParser -from .braunschweiger_zeitung import BSZeitungParser +from .braunschweiger_zeitung import BSZParser from .die_welt import DieWeltParser from .die_zeit import DieZeitParser from .dw import DWParser @@ -176,7 +176,7 @@ class DE(PublisherEnum): domain="https://www.taz.de/", sources=[ NewsMap("https://taz.de/sitemap-google-news.xml"), - Sitemap("https://taz.de/sitemap-index.xml", reverse=True), + Sitemap("https://taz.de/sitemap-index.xml"), ], parser=TazParser, ) @@ -200,7 +200,7 @@ class DE(PublisherEnum): domain="https://www.braunschweiger-zeitung.de/", sources=[ RSSFeed("https://www.braunschweiger-zeitung.de/rss"), - Sitemap("https://www.braunschweiger-zeitung.de/sitemaps/news.xml"), + NewsMap("https://www.braunschweiger-zeitung.de/sitemaps/news.xml"), ], - parser=BSZeitungParser, + parser=BSZParser, ) diff --git a/src/fundus/publishers/de/braunschweiger_zeitung.py b/src/fundus/publishers/de/braunschweiger_zeitung.py index 5f49db8e8..b326c4c14 100644 --- a/src/fundus/publishers/de/braunschweiger_zeitung.py +++ b/src/fundus/publishers/de/braunschweiger_zeitung.py @@ -14,26 +14,35 @@ ) -class BSZeitungParser(ParserProxy): +class BSZParser(ParserProxy): class V1(BaseParser): _author_substitution_pattern: Pattern[str] = re.compile(r"FUNKE Mediengruppe") _paragraph_selector = XPath( - "//div[@class='article-body']//p[not(contains(strong, 'Meistgeklickte Nachrichten " - "aus der Region') or contains(strong, 'Keine wichtigen News mehr verpassen') or " - "@rel='author' or em[@class='print'] or contains(a, 'Jetzt Angebot und Vorteile " - "checken') or contains(text(), 'Lesen Sie mehr Geschichten aus') or contains(" - "strong, 'Mehr wichtige Nachrichten aus') or contains(strong, 'Täglich wissen, " - "was in') or contains(strong, 'Auch interessant') or contains(strong, 'Das könnte " - "Sie auch interessieren') or contains(strong, 'Lesen Sie auch') or contains(" - "strong, 'Mehr zu dem Thema') or contains(strong, 'Mehr zum Thema') or contains(" - "strong, 'Lesen Sie dazu') or contains(strong, 'Lesen Sie hier'))]" + "//div[@class='article-body']//p[not(" + "contains(strong, 'Meistgeklickte Nachrichten aus der Region')" + " or contains(strong, 'Keine wichtigen News mehr verpassen')" + " or @rel='author' or em[@class='print']" + " or contains(a, 'Jetzt Angebot und Vorteile checken')" + " or contains(text(), 'Lesen Sie mehr Geschichten aus')" + " or contains(strong, 'Mehr wichtige Nachrichten aus')" + " or contains(strong, 'Täglich wissen, was in')" + " or contains(strong, 'Auch interessant')" + " or contains(strong, 'Auch interessant')" + " or contains(strong, 'Das könnte Sie auch interessieren')" + " or contains(strong, 'Lesen Sie auch')" + " or contains(strong, 'Mehr zu dem Thema')" + " or contains(strong, 'Mehr zum Thema')" + " or contains(strong, 'Lesen Sie dazu')" + " or contains(strong, 'Lesen Sie hier'))]" ) _summary_selector = XPath("//div[@class='article-body']//p[1]") _subheadline_selector = XPath( - "//div[@class='article-body']//h3[not(contains(text(), 'Alle Artikel der " - "Serie') or contains(text(), 'Mehr zum Thema') or contains(text(), " - "'weitere Videos') or contains(text(), 'Auch interessant') or contains(text(), " - "'Weitere News'))]" + "//div[@class='article-body']//h3[not(" + "contains(text(), 'Alle Artikel der Serie')" + " or contains(text(), 'Mehr zum Thema')" + " or contains(text(), 'weitere Videos')" + " or contains(text(), 'Auch interessant')" + " or contains(text(), 'Weitere News'))]" ) @attribute @@ -51,7 +60,7 @@ def title(self) -> Optional[str]: @attribute def topics(self) -> List[str]: - return generic_topic_parsing(self.precomputed.ld.bf_search("keywords")) + return generic_topic_parsing(self.precomputed.meta.get("news_keywords")) @attribute def authors(self) -> List[str]: diff --git a/tests/resources/parser/test_data/de/BSZ.json b/tests/resources/parser/test_data/de/BSZ.json index 677a87185..b4b242ff7 100644 --- a/tests/resources/parser/test_data/de/BSZ.json +++ b/tests/resources/parser/test_data/de/BSZ.json @@ -6,7 +6,9 @@ "publishing_date": "2024-01-29 18:09:51+00:00", "title": "Heide-Park: Eröffnungstermin für neue Attraktion steht fest", "topics": [ - "Heide-Park Soltau Soltau Freizeitpark" + "Freizeitpark", + "Soltau", + "Heide-Park Soltau" ] } }