Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ruhr Nachrichten #496

Merged
merged 6 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/supported_publishers.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,21 @@
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr>
<td>
<code>RuhrNachrichten</code>
</td>
<td>
<div>Ruhr Nachrichten</div>
</td>
<td>
<a href="https://www.ruhrnachrichten.de/">
<span>www.ruhrnachrichten.de</span>
</a>
</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr>
<td>
<code>SpiegelOnline</code>
Expand Down
18 changes: 17 additions & 1 deletion src/fundus/publishers/de/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from dateutil.rrule import MONTHLY, rrule

from fundus.publishers.base_objects import PublisherEnum, PublisherSpec
from fundus.scraping.filter import regex_filter
from fundus.scraping.filter import inverse, regex_filter
from fundus.scraping.url import NewsMap, RSSFeed, Sitemap

from .berliner_zeitung import BerlinerZeitungParser
Expand All @@ -20,6 +20,7 @@
from .ndr import NDRParser
from .ntv import NTVParser
from .rheinische_post import RheinischePostParser
from .rn import RuhrNachrichtenParser
from .spon import SPONParser
from .stern import SternParser
from .sz import SZParser
Expand Down Expand Up @@ -240,3 +241,18 @@ class DE(PublisherEnum):
],
parser=RheinischePostParser,
)

RuhrNachrichten = PublisherSpec(
name="Ruhr Nachrichten",
domain="https://www.ruhrnachrichten.de/",
sources=[
RSSFeed("https://www.ruhrnachrichten.de/service/feed/"),
NewsMap("https://www.ruhrnachrichten.de/news-sitemap.xml"),
Sitemap(
"https://www.ruhrnachrichten.de/sitemap_index.xml",
reverse=True,
sitemap_filter=inverse(regex_filter("post-sitemap")),
),
],
parser=RuhrNachrichtenParser,
)
44 changes: 44 additions & 0 deletions src/fundus/publishers/de/rn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import datetime
from typing import List, Optional

from lxml.cssselect import CSSSelector

from fundus.parser import ArticleBody, BaseParser, ParserProxy, attribute
from fundus.parser.utility import (
extract_article_body_with_selector,
generic_author_parsing,
generic_date_parsing,
generic_topic_parsing,
)


class RuhrNachrichtenParser(ParserProxy):
class V1(BaseParser):
_summary_selector = CSSSelector("div.article__content > p.article__teaser-text")
_paragraph_selector = CSSSelector("div.article__content > p:not([class])")
_subheadline_selector = CSSSelector("div.article__content > h2")

@attribute
def body(self) -> ArticleBody:
return extract_article_body_with_selector(
self.precomputed.doc,
paragraph_selector=self._paragraph_selector,
summary_selector=self._summary_selector,
subheadline_selector=self._subheadline_selector,
)

@attribute
def publishing_date(self) -> Optional[datetime.datetime]:
return generic_date_parsing(self.precomputed.ld.bf_search("datePublished"))

@attribute
def authors(self) -> List[str]:
return generic_author_parsing(self.precomputed.meta.get("author"))

@attribute
def title(self) -> Optional[str]:
return self.precomputed.meta.get("og:title")

@attribute
def topics(self) -> List[str]:
return generic_topic_parsing(self.precomputed.ld.bf_search("keywords"))
68 changes: 68 additions & 0 deletions tests/resources/parser/test_data/de/RuhrNachrichten.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"V1": {
"authors": [
"Daniel Großert"
],
"body": {
"summary": [
"Mitte Mai kommen die Eisheiligen. Aber was steckt hinter dem Phänomen? Und wie ist die Wetter-Prognose? Die wichtigsten Infos zu den Eisheiligen 2024."
],
"sections": [
{
"headline": [],
"paragraphs": [
"Beim Stichwort „Eisheilige“ denken viele Menschen an einen alten – und zugegebenermaßen ziemlich flachen – Witz. Lehrer: „Wie heißen die Eisheiligen?“ Schüler: „Langnese, Schöller und Mövenpick.“ Aber wissen Sie auch, was es wirklich mit den Eisheiligen auf sich hat? Wir erklären Ihnen alles zum Zeitpunkt und Hintergrund des Wetterphänomens und verraten, wie die Wetter-Prognose für die Eisheiligen 2024 ausfällt."
]
},
{
"headline": [
"Wann sind die Eisheiligen 2024?"
],
"paragraphs": [
"Der Zeitraum der Eisheiligen ist jedes Jahr gleich. Auch 2024 beginnen sie wieder am 11. Mai und enden am 15. Mai. Das liegt daran, dass die Tage sich nach den Namenstagen von fünf Heiligen richten, die eben immer auf dasselbe Datum fallen."
]
},
{
"headline": [
"Namen: Wie heißen die Eisheiligen?"
],
"paragraphs": [
"Die Eisheiligen sind nach drei Märtyrerinnen und Märtyrern sowie zwei Bischöfen benannt, die zwischen dem 11. und 15. Mai Namenstag feiern. Das sind die Namen der Eisheiligen:"
]
},
{
"headline": [
"Woher haben die Eisheiligen ihren Namen?"
],
"paragraphs": [
"Die fünf Heiligen, die im Volksmund als Eisheilige bezeichnet werden, haben mit dem Wetter eigentlich gar nichts zu tun. Die Bezeichnung rührt daher, dass es Mitte Mai teilweise noch einmal knackig kalt wird, nachdem der Frühling sich zuvor bereits von seiner besten Seite präsentiert hat. Weil diese Kältephase früher oft über die Namenstage von Mamertus, Pankratius, Servatius, Bonifatius und Sophia kam, erhielten die fünf den Namen „Eisheilige“.",
"Heute wird es mitten im Frühling zwar meist noch einmal kalt. „Zwischen dem noch kalten Nordeuropa und den Landflächen Südeuropas, die sich durch den zunehmenden Sonnenstand bereits rasch erwärmen, stellen sich enormen Temperaturgegensätze ein. Durch diese großen Temperaturkontraste innerhalb Europas können kräftige Tiefs entstehen, die auch das Wetter in Mitteleuropa beeinflussen“, sagte Meteorologin Corinna Borau dem Portal nordbayern.de. Allerdings passiert das nur selten im Zeitraum der Eisheiligen, wie eine Wetter-Statistik zeigt: Zwischen 1991 und 2020 lagen die Temperaturen Mitte Mai nur sechsmal unter 3 Grad – also in nur 20 Prozent der Fälle.",
"Wetter-Experten bezeichnen solche Phänomene wie die Eisheiligen übrigens als „meteorologische Singularität“. Dabei handelt es sich um Wetterlagen, die mit hoher Wahrscheinlichkeit in bestimmten Zeiträumen auftreten. Weitere Singularitäten sind beispielsweise die Schafskälte Mitte Juni oder die Hundstage Ende Juli bzw. Anfang August."
]
},
{
"headline": [
"Wie ist die Wetter-Prognose für die Eisheiligen 2024?"
],
"paragraphs": [
"Manch einer wähnte die Eisheiligen 2024 ziemlich früh dran, als Mitte April die Temperaturen in Nordrhein-Westfalen plötzlich wieder in Richtung Gefrierpunkt sanken und mancherorts – vor allem nachts – unter 0 Grad fielen. Und möglicherweise waren das tatsächlich bereits die Eisheiligen, denn Wetter-Experten erwarten Mitte Mai keinen erneuten Temperatursturz. „In Sachen Eisheiligen ist nichts in Sicht“, sagte Meteorologe Dominik Jung dem Westfälischen Anzeiger. Stattdessen erwarte er, dass die Temperaturen im Wonnemonat sich im Bereich von 20 Grad bewegen."
]
},
{
"headline": [
"Welche Bauernregeln gibt es zu den Eisheiligen?"
],
"paragraphs": [
"Um die Eisheiligen ranken sich viele Bauernregeln. Der mögliche Frost Mitte Mai kann schließlich Auswirkungen auf Pflanzen und somit auch auf die spätere Ernte haben. Deshalb halten sich auch viele Hobby-Gärtnerinnen und Hobby-Gärtner an die Faustregel, gewisse Pflanzen erst nach dem 15. Mai im Garten oder auf dem Balkon zu pflanzen. Diese Bauernregeln sollen daran erinnern:"
]
}
]
},
"publishing_date": "2024-05-03 15:42:11+02:00",
"title": "Die Eisheiligen 2024: Wann sie sind - und wie das Wetter wird",
"topics": [
"Natur & Umwelt",
"Eisheilige"
]
}
}
Binary file not shown.
4 changes: 4 additions & 0 deletions tests/resources/parser/test_data/de/meta.info
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@
"url": "https://rp-online.de/nrw/landespolitik/kuenstliche-intelligenz-in-der-schule-kinder-werden-schneller-und-erfolgreicher_aid-107992075",
"crawl_date": "2024-04-21 21:24:12.852008"
},
"RuhrNachrichten_2024_05_03.html.gz": {
"url": "https://www.ruhrnachrichten.de/service/eisheiligen-2024-wann-namen-wetter-prognose-bauernregeln-w876709-2001195551/",
"crawl_date": "2024-05-03 17:44:24.082210"
},
"SZ_2023_04_28.html.gz": {
"url": "https://www.sueddeutsche.de/muenchen/landkreismuenchen/ranking-fahrradfreundlichkeit-fleissige-bundestagsabgeordnete-kolumne-1.5827206",
"crawl_date": "2023-04-28 20:21:15.488026"
Expand Down