Skip to content

Commit

Permalink
Merge pull request #632 from flairNLP/add-el-pais
Browse files Browse the repository at this point in the history
Add `El Pais`
  • Loading branch information
addie9800 authored Oct 16, 2024
2 parents 6ba4e1a + 6405a20 commit 6f79f93
Show file tree
Hide file tree
Showing 7 changed files with 158 additions and 0 deletions.
32 changes: 32 additions & 0 deletions docs/supported_publishers.md
Original file line number Diff line number Diff line change
Expand Up @@ -967,6 +967,38 @@
</table>


## ES-Publishers

<table class="publishers es">
<thead>
<tr>
<th>Class&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</th>
<th>Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</th>
<th>URL&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</th>
<th>Missing&#160;Attributes</th>
<th>Additional&#160;Attributes&#160;&#160;&#160;&#160;</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>ElPais</code>
</td>
<td>
<div>El Pa&#237;s</div>
</td>
<td>
<a href="https://elpais.com/">
<span>elpais.com</span>
</a>
</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
</tbody>
</table>


## FR-Publishers

<table class="publishers fr">
Expand Down
2 changes: 2 additions & 0 deletions src/fundus/publishers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from fundus.publishers.ch import CH
from fundus.publishers.cn import CN
from fundus.publishers.de import DE
from fundus.publishers.es import ES
from fundus.publishers.fr import FR
from fundus.publishers.ind import IND
from fundus.publishers.jp import JP
Expand Down Expand Up @@ -66,4 +67,5 @@ class PublisherCollection(metaclass=PublisherCollectionMeta):
ind = IND
no = NO
ca = CA
es = ES
jp = JP
22 changes: 22 additions & 0 deletions src/fundus/publishers/es/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import datetime

from dateutil.rrule import MONTHLY, rrule

from fundus.publishers.base_objects import Publisher, PublisherGroup
from fundus.publishers.es.el_pais import ElPaisParser
from fundus.scraping.url import RSSFeed, Sitemap


class ES(metaclass=PublisherGroup):
ElPais = Publisher(
name="El País",
domain="https://elpais.com/",
parser=ElPaisParser,
sources=[RSSFeed("https://feeds.elpais.com/mrss-s/pages/ep/site/elpais.com/portada")]
+ [
Sitemap(f"https://elpais.com/sitemaps/{d.year}/{str(d.month).zfill(2)}/sitemap_0.xml")
for d in reversed(
list(rrule(MONTHLY, dtstart=datetime.datetime(1976, 5, 1), until=datetime.datetime.now()))
)
],
)
44 changes: 44 additions & 0 deletions src/fundus/publishers/es/el_pais.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import datetime
from typing import List, Optional

from lxml.etree import XPath

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 ElPaisParser(ParserProxy):
class V1(BaseParser):
_paragraph_selector = XPath("//div[@class='a_c clearfix']/p")
_subheadline_selector = XPath("//div[@class='a_c clearfix']/h3")
_summary_selector = XPath("//div[@class='a_e_txt _df']//h2")

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

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

@attribute
def title(self) -> Optional[str]:
return self.precomputed.ld.bf_search("headline")

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

@attribute
def topics(self) -> List[str]:
return generic_topic_parsing(self.precomputed.ld.bf_search("keywords"))
52 changes: 52 additions & 0 deletions tests/resources/parser/test_data/es/ElPais.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"V1": {
"authors": [
"María R. Sahuquillo"
],
"body": {
"summary": [
"La Comisión endurecerá la regulación sobre deportaciones mientras analiza el polémico modelo de Italia en Albania como una de las “soluciones innovadoras” frente a la migración irregular"
],
"sections": [
{
"headline": [],
"paragraphs": [
"La presidenta de la Comisión Europea, Ursula von der Leyen, es cada vez más clara en su giro a la derecha en inmigración, siguiendo la senda de un número creciente de países comunitarios. Bruselas sondea ahora la apertura de centros de deportación fuera de la UE, para enviar allí a los migrantes en situación irregular, en la senda del modelo que Italia acaba de estrenar en Albania. Algo que podría encajar en la reforma de la regulación sobre deportaciones, para endurecerla, que prepara el Ejecutivo comunitario. Así lo explica Von der Leyen a los líderes de los Estados miembros en una carta enviada en vísperas de un Consejo Europeo en el que también se hablará de inmigración, un asunto cada vez más caliente en una Unión Europea en la que avanzan la derecha y el populismo, y en la que el debate sobre los solicitantes de asilo inunda la política nacional.",
"“Deberíamos seguir explorando posibles formas de avanzar en la idea de desarrollar centros de retorno fuera de la UE, especialmente en vista de una nueva propuesta de retorno”, dice Von der Leyen en la misiva. La jefa del Ejecutivo comunitario recoge el guante de un gran grupo de socios que, liderados por Dinamarca, reclamaron hace unos meses que se explorasen “soluciones innovadoras” para combatir la inmigración irregular. Esas fórmulas incluyen el modelo de campos de deportación fuera de territorio comunitario —pero gestionados con personal europeo—, como el que ha abierto el Gobierno italiano, encabezado por la ultraderechista Giorgia Meloni, en Albania. Von der Leyen remarca que ese modelo servirá para “extraer lecciones prácticas”. Una portavoz comunitaria remarcó este martes que para lanzar ese modelo a nivel europeo, no obstante, hace falta una reforma de la regulación sobre deportaciones, como la presidenta de la Comisión anuncia en su carta.",
"La familia política de Von der Leyen, el Partido Popular Europeo (PPE), apoyaba la medida de crear campos de deportación fuera de la UE en su programa electoral para las elecciones europeas del pasado junio, e incluso iba más allá al abrazar el llamado modelo Ruanda de Reino Unido, una política de expulsiones que contempla enviar a ese país africano, con el que Londres ha firmado un acuerdo, a personas en situación irregular cuando las autoridades británicas no hubieran estudiado todavía su caso, según alertó el Consejo de Europa.",
"La mayoría de Estados miembros reclaman, además, un endurecimiento de las normas que regulan las expulsiones para tratar de aumentarlas. Tal y como pedían España, Francia y Alemania, la Comisión Europea incide también en la necesidad de que se acelere la aplicación de las directivas que componen el pacto migratorio, que establece un reparto solidario entre los socios de una cuota de solicitantes de asilo y un pago de unos 20.000 euros a una cesta común por refugiado rechazado. “Este es un conjunto de soluciones europeas para un desafío europeo”, dice Von der Leyen.",
"La idea de crear centros de deportación como el que ha impulsado Meloni revolotea en la UE desde hace tiempo. Pero hasta hace unos meses Bruselas se había mostrado reacia. Cuando se puso la idea sobre la mesa hace años, la Comisión la rechazó aludiendo a la legislación comunitaria. Ahora está abierta a explorarlo. Tampoco criticó a Italia con su idea de crear campos de deportación en Albania: alegan que, pese a encontrarse en un país extracomunitario, son de alguna manera espacios italianos, ya que están gestionados con personal italiano y según la norma italiana. Esta semana, el Gobierno de Meloni ha enviado a uno de esos centros a primer grupo de 16 solicitantes de asilo (de Bangladés y Egipto) rescatados en el mar. En Albania deberán esperar una respuesta a su solicitud de protección internacional.",
"Pese a la apertura de Von der Leyen a legislar para crear centros de deportación fuera de la UE, más allá del posible impedimento legal, la principal barrera es dónde instalarlos. Algunos Estados miembros quieren que se presione a los países de los Balcanes, candidatos a ingresar en el club comunitario, para que accedan a acogerlos, siguiendo el modelo de Albania. Por ahora, no obstante, se han mostrado reacios, según fuentes diplomáticas."
]
},
{
"headline": [
"Denuncias de ONG"
],
"paragraphs": [
"Distintas organizaciones de derechos humanos han denunciado estas controvertidas instalaciones. El debate, además, se calienta cuando vuelven a aflorar denuncias de que países como Turquía, con el que la Unión mantiene uno de sus acuerdos migratorios, ha financiado con dinero europeo centros de deportación para extranjeros —solicitantes de asilo y no solicitantes— donde se han registrado un enorme número de violaciones de los derechos humanos. Así lo ha revelado una investigación en la que ha participado EL PAÍS.",
"El acuerdo con Turquía “sigue siendo clave”, dice la jefa del Ejecutivo comunitario. Bruselas se lava las manos sobre las denuncias de malos tratos. La conservadora alemana insiste en que programará un nuevo paquete de 1.000 millones de euros para los refugiados sirios en Turquía y para “apoyar” a Ankara en la gestión de fronteras y la migración.",
"La apuesta de la UE sigue siendo firmar acuerdos con países extracomunitarios para que frenen las salidas hacia territorio de la UE a cambio de fondos, como el controvertido pacto firmado con Túnez, Egipto o Mauritania. Ahora, con el aumento del 56% de las llegadas este año (comparadas con 2023) a España por las rutas del Mediterráneo y el Atlántico, Bruselas quiere apuntalar ese acuerdo con Mauritania e “incentivar” otros con Senegal Y Malí, “a pesar de la complejidad de las relaciones”, dice Von der Leyen.",
"Bruselas apuesta, sobre todo, por reformar la regulación sobre deportaciones para tratar de aumentarlas. Pero también este asunto sigue siendo uno de los desafíos principales, ya que algunos países de origen no admiten las devoluciones de personas en situación irregular a las que se ha denegado el derecho al asilo por falta de convenios, regulación y otros problemas burocráticos, incluso dentro de los propios Estados miembros.",
"“La política migratoria de la UE solo puede ser sostenible si se devuelve de manera efectiva a quienes no tienen derecho a permanecer en la Unión. Sin embargo, tan solo cerca del 20% de los nacionales de terceros países a los que se ha ordenado salir han regresado realmente”, dice Von der Leyen en su carta.",
"Cada vez más gobiernos han endurecido su política y su discurso sobre inmigración. Ha ocurrido, por ejemplo, en Francia y en Alemania. Casi al mismo ritmo, el sistema de libre circulación Schengen peligra, con cada vez más cierres de fronteras. El primer ministro polaco, el liberal de centroderecha Donald Tusk, anunció el pasado sábado que suspendía el derecho al asilo en ese país escudándose en la entrada de migrantes irregulares desde Bielorrusia. “Nuestro derecho y nuestro deber es proteger la frontera polaca y europea”, dijo el jefe de Gobierno polaco. Bruselas le ha recordado que debe cumplir la normativa europea, pero lo ha hecho tímidamente. Finlandia ya cerró su frontera con Rusia hace meses, alegando que el Kremlin enviaba migrantes para desestabilizar el país. El consenso sobre la política de asilo se resquebraja."
]
}
]
},
"publishing_date": "2024-10-15 08:22:57+02:00",
"title": "Bruselas sondea la apertura de centros de deportación fuera de la Unión Europea ",
"topics": [
"Migración",
"Migrantes",
"Unión Europea",
"Comisión Europea",
"Ursula von der Leyen",
"Consejo Europeo",
"Albania",
"Italia",
"Derechos humanos",
"Inmigrantes"
]
}
}
Binary file not shown.
6 changes: 6 additions & 0 deletions tests/resources/parser/test_data/es/meta.info
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"ElPais_2024_10_15.html.gz": {
"url": "https://elpais.com/internacional/2024-10-15/bruselas-sondea-la-apertura-de-centros-de-deportacion-fuera-de-la-union-europea.html",
"crawl_date": "2024-10-15 17:43:35.457824"
}
}

0 comments on commit 6f79f93

Please sign in to comment.