Skip to content

Commit 47063ec

Browse files
committed
added rss, switched to json, added subheadlines testcase, refined image, added url filter, sitemap now in reverse
1 parent 7bf7515 commit 47063ec

File tree

6 files changed

+53
-28
lines changed

6 files changed

+53
-28
lines changed

src/fundus/publishers/se/__init__.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from fundus.publishers.base_objects import Publisher, PublisherGroup
2+
from fundus.scraping.filter import regex_filter
23
from fundus.scraping.url import NewsMap, RSSFeed, Sitemap
34

45
from .expressen import ExpressenParser
@@ -13,8 +14,21 @@ class SE(metaclass=PublisherGroup):
1314
parser=ExpressenParser,
1415
sources=[
1516
RSSFeed("https://feeds.expressen.se/nyheter/"),
17+
RSSFeed("https://feeds.expressen.se/gt"),
18+
RSSFeed("https://feeds.expressen.se/kvp/"),
1619
RSSFeed("https://feeds.expressen.se/sport/"),
20+
RSSFeed("https://feeds.expressen.se/fotboll/"),
21+
RSSFeed("https://feeds.expressen.se/hockey/"),
1722
RSSFeed("https://feeds.expressen.se/noje/"),
18-
Sitemap("https://www.expressen.se/sitemap.xml"),
23+
RSSFeed("https://feeds.expressen.se/debatt/"),
24+
RSSFeed("https://feeds.expressen.se/ledare/"),
25+
RSSFeed("https://feeds.expressen.se/kultur/"),
26+
RSSFeed("https://feeds.expressen.se/dinapengar/"),
27+
RSSFeed("https://feeds.expressen.se/halsoliv/"),
28+
RSSFeed("https://feeds.expressen.se/levabo/"),
29+
RSSFeed("https://feeds.expressen.se/motor/"),
30+
RSSFeed("https://feeds.expressen.se/allt-om-resor/"),
31+
Sitemap("https://www.expressen.se/sitemap.xml", reverse=True),
1932
],
33+
url_filter=regex_filter(r"/tv/|expressen-direkt"),
2034
)

src/fundus/publishers/se/expressen.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,20 @@ class ExpressenParser(ParserProxy):
1919
class V1(BaseParser):
2020
_paragraph_selector = CSSSelector("div.article__body-text p")
2121
_summary_selector = CSSSelector("div.article__preamble")
22+
_subheadline_selector = CSSSelector("div.article__body-text h2")
2223

2324
@attribute
2425
def body(self) -> Optional[ArticleBody]:
2526
return extract_article_body_with_selector(
2627
self.precomputed.doc,
2728
paragraph_selector=self._paragraph_selector,
2829
summary_selector=self._summary_selector,
30+
subheadline_selector=self._subheadline_selector,
2931
)
3032

3133
@attribute
3234
def title(self) -> Optional[str]:
33-
return self.precomputed.meta.get("og:title")
35+
return self.precomputed.ld.bf_search("headline")
3436

3537
@attribute
3638
def publishing_date(self) -> Optional[datetime.datetime]:
@@ -46,9 +48,11 @@ def images(self) -> List[Image]:
4648
doc=self.precomputed.doc,
4749
paragraph_selector=self._paragraph_selector,
4850
image_selector=XPath("//figure//img"),
51+
caption_selector=XPath("./ancestor::figure//figcaption//div[@class='rich-image__description']"),
52+
author_selector=XPath("./ancestor::figure//figcaption//div[@class='rich-image__credit']"),
4953
upper_boundary_selector=CSSSelector("div.article__body-text"),
5054
)
5155

5256
@attribute
5357
def topics(self) -> List[str]:
54-
return generic_topic_parsing(self.precomputed.ld.bf_search("articleSection"))
58+
return [topic.split("/")[-1] for topic in generic_topic_parsing(self.precomputed.ld.bf_search("keywords"))]
Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
{
22
"V1": {
33
"authors": [
4-
"stefan soxbo"
4+
"viktor hedlund"
55
],
66
"body": {
77
"summary": [
8-
"Gymnasieeleven Carson Ryan ”misstogs för en ekorre” när han var ute och jagade.17-åringen sköts i bakhuvudet och dog, skriver People.Över en halv miljon kronor har samlats in för att hjälpa familjen.Senaste nyhetsklippen från Expressen."
8+
"Eleverna på privatskolan Lundsberg trängde på natten in och misshandlade flera andra elever, enligt åtalet.I sovrummen slog de skolkamraterna med skärp.Nu åtalas fem elever för misshandel och grovt hemfridsbrott."
99
],
1010
"sections": [
1111
{
1212
"headline": [],
1313
"paragraphs": [
14-
"17-årige amerikanen Carson Ryan gick sista året på Washington High School och spelade i skolans fotbollslag.",
15-
"– Carson var en riktig tävlingsmänniska i allt han gjorde. Han älskade fiske och att vara med sina vänner. Men viktigast av allt så var Carson en person med en otroligt stark tro, säger lagets assisterande tränare Nic Williams.",
16-
"Under lördagen var Carson ute på en ekorrjakt i delstaten Iowa. Då blev han av misstag skjuten av en annan jägare, enligt Iowas naturresursmyndighet.",
17-
"”Han misstogs för en ekorre av en medlem i sitt jaktlag och träffades i bakhuvudet”, skriver myndigheten.",
18-
"Carson fördes till sjukhus.",
19-
"”Han avled senare av sina skador”, skriver myndigheten.",
20-
"Händelsen utreds.",
21-
"Skolan höll en minnesstund för Carson på söndagskvällen. Elever uppmanades att bära skolans svarta och orange färger på måndagen till minne av Carson.",
22-
"En insamling har startats för att hjälpa familjen och 600 000 kronor har donerats.",
23-
"”Carson var en son, en vän och ett ljus för alla som hade förmånen att känna honom. Hans vänlighet, humor och genuina personlighet berörde otaliga liv. Hans död lämnar ett omätbart tomrum”, står det i insamlingens beskrivning."
14+
"De fem manliga eleverna i 18-årsåldern på internatskolan i värmländska Storfors misstänks för att vid flera tillfällen i vintras ha misshandlat andra elever på skolan.",
15+
"I januari ska två av eleverna delat ut slag mot andra elever på ett elevhem samt i nära anslutning till middagen på Lundsberg.",
16+
"Senare på natten stormade de fem åtalade in i två sovrum på ett elevhem, enligt åtalet. De var maskerade och började slå flera personer med nävar och skärp. En person kastades ner i golvet innan han blev misshandlad.",
17+
"”Brottet bör bedömas som grovt eftersom inträngandet skett nattetid av flera maskerade gärningsmän i syfte att misshandla målsägandena”, står det i åtalet."
18+
]
19+
},
20+
{
21+
"headline": [
22+
"Fem elever stängdes av"
23+
],
24+
"paragraphs": [
25+
"En av de misstänkta åtalas också för att redan hösten 2024 tillsammans med flera andra trängt in i ett sovrum och misshandlat en elev. Han ska också ha filmat misshandeln och spridit det till andra elever.",
26+
"I en av de misstänktas telefon har polisen hittat en konversation som enligt åklagaren visar på att motivet varit att ”'dom' har förolämpat 'oss' under en längre tid”.",
27+
"I januari briserade nyheten om ”en allvarlig incident” på Lundsberg som ledde till att fem personer stängdes av. Expressen kunde då berätta att det hållits någon form av uppträdande som gick ut på att göra narr varandra och där de yngre eleverna ska ha drivit hårt med de äldres föräldrar.",
28+
"Eleverna förnekar brott. Totalt är fem andra elever målsägande i åtalet."
2429
]
2530
}
2631
]
@@ -29,37 +34,39 @@
2934
{
3035
"versions": [
3136
{
32-
"url": "https://static.bonniernews.se/images/1c/25/1c258a8ea4d549588f1a6d80400f4982/16x9/640.png",
37+
"url": "https://static.bonniernews.se/images/44/15/44152f97b643491cb91f2aeeac1e25f5/16x9/640@60.jpg",
3338
"query_width": null,
3439
"size": {
3540
"width": 640,
3641
"height": 0
3742
},
38-
"type": "image/png"
43+
"type": "image/jpeg"
3944
},
4045
{
41-
"url": "https://static.bonniernews.se/images/1c/25/1c258a8ea4d549588f1a6d80400f4982/16x9/741.png",
46+
"url": "https://static.bonniernews.se/images/44/15/44152f97b643491cb91f2aeeac1e25f5/16x9/[email protected]",
4247
"query_width": null,
4348
"size": {
44-
"width": 741,
49+
"width": 1280,
4550
"height": 0
4651
},
47-
"type": "image/png"
52+
"type": "image/jpeg"
4853
}
4954
],
5055
"is_cover": true,
5156
"description": null,
52-
"caption": "Carson Ryan. Foto: Go Fund Me",
57+
"caption": "Internatskolan Lundsberg.",
5358
"authors": [
54-
"Go Fund Me"
59+
"LISA MATTISSON"
5560
],
5661
"position": 907
5762
}
5863
],
59-
"publishing_date": "2025-10-01 00:11:03.035000+00:00",
60-
"title": "Därför dog 17-åringen:\n”Misstogs för ekorre”",
64+
"publishing_date": "2025-10-23 08:23:39.074000+00:00",
65+
"title": "Elever åtalas för misshandel på Lundsberg",
6166
"topics": [
62-
"nyheter"
67+
"sverige",
68+
"lundsberg",
69+
"misshandel & överfall"
6370
]
6471
}
6572
}
-48.4 KB
Binary file not shown.
48.1 KB
Binary file not shown.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"Expressen_2025_10_20.html.gz": {
3-
"url": "https://www.expressen.se/nyheter/varlden/17-aringens-dodsorsak-misstogs-for-ekorre/",
4-
"crawl_date": "2025-10-20 23:46:55.070865"
2+
"Expressen_2025_10_23.html.gz": {
3+
"url": "https://www.expressen.se/nyheter/sverige/elever-atalas-for-misshandel-pa-lundsberg/",
4+
"crawl_date": "2025-10-23 19:40:42.788082"
55
}
66
}

0 commit comments

Comments
 (0)