Skip to content

Commit

Permalink
add CorriereDellaSera
Browse files Browse the repository at this point in the history
  • Loading branch information
addie9800 committed Jan 5, 2025
1 parent 2c12805 commit d225bc2
Show file tree
Hide file tree
Showing 6 changed files with 168 additions and 0 deletions.
17 changes: 17 additions & 0 deletions docs/supported_publishers.md
Original file line number Diff line number Diff line change
Expand Up @@ -1172,6 +1172,23 @@
</tr>
</thead>
<tbody>
<tr>
<td>
<code>CorriereDellaSera</code>
</td>
<td>
<div>Corriere Della Sera</div>
</td>
<td>
<a href="https://www.corriere.it/">
<span>www.corriere.it</span>
</a>
</td>
<td>
<code>topics</code>
</td>
<td>&#160;</td>
</tr>
<tr>
<td>
<code>LaRepubblica</code>
Expand Down
11 changes: 11 additions & 0 deletions src/fundus/publishers/it/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from dateutil.rrule import MONTHLY, rrule

from fundus.publishers.base_objects import Publisher, PublisherGroup
from fundus.publishers.it.corriere_della_sera import CorriereDellaSeraParser
from fundus.publishers.it.la_repubblica import LaRepubblicaParser
from fundus.scraping.url import RSSFeed, Sitemap

Expand All @@ -22,3 +23,13 @@ class IT(metaclass=PublisherGroup):
)
],
)

CorriereDellaSera = Publisher(
name="Corriere Della Sera",
domain="https://www.corriere.it/",
parser=CorriereDellaSeraParser,
sources=[
RSSFeed("https://www.corriere.it/feed-hp/homepage.xml"),
Sitemap("https://www.corriere.it/rss/sitemap_v2.xml"),
],
)
59 changes: 59 additions & 0 deletions src/fundus/publishers/it/corriere_della_sera.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import re
from datetime import datetime
from typing import List, Optional

from lxml.etree import XPath

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


class CorriereDellaSeraParser(ParserProxy):
class V1(BaseParser):
# Selectors for article body parts
_summary_selector = XPath("//p[contains(@class, 'summary')]")
_paragraph_selector = XPath("//p[@class='chapter-paragraph' and text()]")
_subheadline_selector = XPath("//h2[contains(@class, 'native-summary-content')]")

@attribute
def title(self) -> Optional[str]:
# Get the headline from og:title meta tag
return self.precomputed.ld.bf_search("headline")

@attribute
def body(self) -> Optional[ArticleBody]:
# Extract article body using utility function
return extract_article_body_with_selector(
self.precomputed.doc,
summary_selector=self._summary_selector,
paragraph_selector=self._paragraph_selector,
subheadline_selector=self._subheadline_selector,
)

@attribute
def authors(self) -> List[str]:
# Extract authors from schema.org NewsArticle data
authors = self.precomputed.ld.xpath_search("//NewsArticle/author")
if authors:
return generic_author_parsing(authors)
return []

@attribute
def publishing_date(self) -> Optional[datetime]:
# Use scalar parameter for direct value
date_str = self.precomputed.ld.xpath_search("//NewsArticle/datePublished", scalar=True)
return generic_date_parsing(date_str)

@attribute
def images(self) -> List[Image]:
return image_extraction(
doc=self.precomputed.doc,
paragraph_selector=self._paragraph_selector,
author_selector=re.compile(r"\(foto (?P<credits>.*)\)\s*$"),
)
77 changes: 77 additions & 0 deletions tests/resources/parser/test_data/it/CorriereDellaSera.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"V1": {
"authors": [
"Viviana Mazza"
],
"body": {
"summary": [
"La premier italiana Giorgia Meloni è partita (a sorpresa) per una missione in Florida dal presidente eletto degli Usa. Segreta l'agenda dell'incontro, ma il New York Times rivela:«La premier ha premuto sul caso di Cecilia Sala»"
],
"sections": [
{
"headline": [],
"paragraphs": [
"DALLA NOSTRA CORRISPONDENTENEW YORK - Giorgia Meloni è arrivata a Mar-a-Lago alle 19:29 locali, dopo l’atterraggio del suo volo partito da Ciampino all’aeroporto di Palm Beach, per una missione lampo - e nata nel riserbo più assoluto - che l'ha portata a incontrare il presidente eletto degli Stati Uniti, Donald Trump.",
"In una delle prime foto scattate dagli ospiti nel salone della residenza in Florida - che è anche un resort - , si vede la presidente del Consiglio italiana insieme a Trump. Al loro fianco, il senatore della Florida Marco Rubio nominato segretario di Stato da Trump, il deputato della Florida Mike Waltz, nominato consigliere per la sicurezza nazionale, Scott Bessent, nominato segretario del Tesoro, l’ambasciatrice d’Italia negli Usa Mariangela Zappia e l’imprenditore texano Tilman Fertitta, nominato ambasciatore Usa in Italia.",
"Trump ha salutato gli ospiti nel salone d'onore, predisposto per la proiezione di un film e, seguito da Meloni e dalla delegazione, si è recato al piano di sopra, tornando intorno alle nove di sera. Non si è visto invece Elon Musk - che potrebbe però aver giocato un ruolo per l'organizzazione dell'incontro."
]
},
{
"headline": [
"Trump su Meloni: «Ha preso d'assalto l'Europa». Poi il film"
],
"paragraphs": [
"«È molto emozionante, sono qui con una donna fantastica, la premier italiana», ha detto Trump agli ospiti riuniti nel salone. «Ha davvero preso d'assalto l'Europa». Rubio, dando il benvenuto alla premier, l'ha poi definita: «Un'ottima alleata, un leader forte».",
"Subito dopo, Trump, Meloni, Rubio, Waltz e Bessent si sono seduti tra il pubblico e fino alle 10:20 di sera hanno assistito alla prima del documentario «Eastman Dilemma» sulle elezioni nel 2020, in cui si accusa il sistema giudiziario di aver preso di mira conservatori come John Eastman, legale di Trump che ha perso l'idoneità a esercitare la professione di avvocato presso i tribunali dello Stato della California ed è stato citato come co-cospiratore nell'atto di accusa federale presentato contro Trump per i suoi tentativi di impedire la certificazione dell'elezione di Biden."
]
},
{
"headline": [
"Il caso Cecilia Sala: «Meloni ha premuto aggressivamente per lei»"
],
"paragraphs": [
"L’incontro di Meloni con Trump sarebbe stata anche un’opportunità per parlare del caso di Cecilia Sala, giornalista italiana del Foglio e di Chora Media detenuta dall’Iran dal 19 dicembre scorso, oltre che di altri temi che stanno a cuore all’Italia e all’Europa come i dazi e la guerra in Ucraina.",
"Il New York Times scriveva in serata: «L'Iran ha arrestato spesso stranieri e individui con doppia cittadinanza per scambiarli con denaro e altre persone. Una persona informata sull'incontro ha detto che Meloni ha premuto aggressivamente per questo».",
"Il 16 dicembre, a Milano, era stato fermato Abedini Najafabani, accusato dagli Stati Uniti di aver supportato i pasdaran di Teheran nell’acquisizione di componenti tecnologiche a duplice uso civile e militare montate sui droni in uso al Corpo dei Guardiani della Rivoluzione: in particolare il sistema di navigazione del modello di drone che il 28 gennaio 2024 uccise in un avamposto giordano tre soldati americani e ferì altre 38 persone. Per questo, gli Usa - che hanno arrestato anche Mahdi Mohammad Sadeghi, ingegnere iraniano il cui caso è legato a doppio filo a quello di Abedini - chiedono all'Italia l'estradizione dell'iraniano, che rischia l'ergastolo.",
"Tre giorni dopo, a Teheran, l'Iran ha arrestato Cecilia Sala, che da allora si trova nel carcere di Evin, in isolamento, senza che le sia stata mossa alcuna accusa formale.",
"Nei giorni scorsi, l'Iran ha chiesto all'Italia il rilascio di Abedini, mentre l'Italia ha protestato per la detenzione - senza alcuna motivazione - della reporter.",
"Gli Stati Uniti hanno finora chiesto esplicitamente ai magistrati italiani di non concedere ad Abedini i domiciliari «a causa della pericolosità del soggetto».",
"L’incontro tra Meloni e Trump avviene cinque giorni prima della visita del presidente uscente Joe Biden, l’attuale presidente americano, a Roma e due settimane prima dell’insediamento di Trump alla Casa Bianca.",
"Dopo la cena e l'incontro con Trump, Giorgia Meloni ha lasciato gli Stati Uniti per tornare a Roma. Secondo il sito Flightradar24, l'aereo della premier italiana è ripartito poco dopo le 23 locali (le cinque del mattino di oggi in Italia) dall'aeroporto di Palm Beach."
]
},
{
"headline": [
"Le parole di Guido Lombardi e la battuta su Rubio"
],
"paragraphs": [
"L’imprenditore George Guido Lombardi, che conosce Trump dal ’94, quando ha acquistato un appartamento alla Trump Tower e ora vive soprattutto a Palm Beach, racconta al Corriere di aver atteso Meloni sulla porta, insieme a Rubio. «È arrivata puntualissima, alle 19:29 era già all’entrata». Lombardi ha conosciuto Meloni una decina di anni fa, prima che diventasse premier: partecipò con lei e con Giorgetti ad un evento della Camera del Commercio Italia-Usa a New York. Dopo i saluti, racconta Lombardi, «lei ha chiesto a Rubio, che di nome si chiama Marco, se è di origine italiana. Lui ha detto \"No, mio papà era cubano\", però ha aggiunto che ha fatto una ricerca sui suoi antenati e alcuni di loro venivano dalla Sardegna. Io gli ho detto che conosco Marco da tantissimo, da quando si era candidato come deputato, prima che come senatore e gli ho fatto un po’ di campagna elettorale. E Rubio ha confermato: \"Sì, mi conosce da bambino\"».",
"Soddisfatto per l'iniziativa della premier si è detto Matteo Salvini. «Bene Giorgia Meloni da Donald Trump per parlare di pace, di collaborazione industriale e commerciale, di sicurezza e della liberazione di Cecilia Sala», ha scritto su X, «mentre altri in Italia e in Europa lo attaccano e lo ignorano, noi diciamo \"go Donald go\"»."
]
}
]
},
"images": [
{
"versions": [
{
"url": "https://dimages2.corriereobjects.it/files/main_image/files/fp/uploads/2025/01/05/677a43307deb3.r_d.580-548-6933.jpeg",
"query_width": null,
"size": {
"width": 572,
"height": 429
},
"type": "image/jpeg"
}
],
"is_cover": true,
"description": "Trump e Meloni a mar a lago",
"caption": null,
"authors": [],
"position": 1449
}
],
"publishing_date": "2025-01-05 03:56:38+01:00",
"title": "Trump accoglie Meloni a Mar-a-Lago: «Ha preso d'assalto l'Europa». Il Nyt: «La premier ha premuto aggressivamente per Cecilia Sala». Salvini: «Bene Giorgia. E noi diciamo \"go Donald go\"»"
}
}
Binary file not shown.
4 changes: 4 additions & 0 deletions tests/resources/parser/test_data/it/meta.info
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
{
"CorriereDellaSera_2025_01_05.html.gz": {
"url": "https://www.corriere.it/esteri/25_gennaio_05/trump-accoglie-meloni-a-mar-a-lago-ha-davvero-preso-d-assalto-l-europa-rubio-giorgia-leader-forte-incontro-anche-sul-caso-3c53a5b8-27fc-4886-a0bf-a10908331xlk.shtml",
"crawl_date": "2025-01-05 16:05:52.498715"
},
"LaRepubblica_2024_12_30.html.gz": {
"url": "https://www.repubblica.it/esteri/2024/12/30/news/morte_jimmy_carter_reazioni-423912500/",
"crawl_date": "2024-12-30 04:58:33.359818"
Expand Down

0 comments on commit d225bc2

Please sign in to comment.