Overzicht
revolution/laravel-fullfeed is een Laravel-pakket dat de hoofdtekst van webpagina’s extraheert voor feedreaders.Met regels per site (JSON) haal je per artikel precies de inhoud op die je nodig hebt.
Deze functionaliteit werd oorspronkelijk gebruikt in een privéfeedreader-app en is later als openbaar pakket uitgebracht.
Vereisten
- PHP >= 8.4 (gebruikt
Dom\HTMLDocument) - Laravel >= 12.x
Installatie
Configuratiebestand en sitedefinities publiceren
config/fullfeed.phpresources/fullfeed
Definitiebestanden automatisch bijwerken (composer post-update-cmd)
Als je de sitedefinities automatisch opnieuw wilt publiceren bijcomposer update, voeg dan het volgende toe aan composer.json.
Basisgebruik
Testen
MetFullFeed::expects() kun je de facade stubben.
Siteregelbestanden
items_all.json
items_all.json is de basis voor het importeren van regels in het LDRFullFeed-formaat (wedata).Livedoor Reader was een bekende dienst in Japan, maar de dienst zelf is gestopt; wat vooral overblijft is de regeldata als erfgoed. FullFeed maakt gebruik van dit historische dataformaat.
plus.json
plus.json is een voorbeeld voor het toevoegen van eigen regels.
Velden in de regelconfiguratie
url: reguliere expressie die op de doel-URL moet matchenselector: CSS-selector (heeft voorrang opxpath)xpath: XPath-expressieenc: encoding, voor als tekencodering-conversie nodig iscallable: eigen Extractor-klasse(n) die als voorbewerking worden uitgevoerd (enkelvoudig of als array)after_callable: Extractor-klasse(n) die als laatste, als nabewerking, worden uitgevoerd
Uitvoervolgorde van Extractors als Pipeline-patroon
FullFeed laat de Extractors op volgorde doorlopen met het Pipeline-patroon van Laravel.- De klasse(n) opgegeven via
callable XPathExtractorSelectorExtractor- De klasse(n) opgegeven via
after_callable
Ingebouwde Extractors
RemoveElements
Verwijdert elementen die matchen met de opgegeven selectors.ReplaceMatches
Vervangt strings die matchen met een reguliere expressie (bewerking op de HTML-string).StripTags
Verwijdert tags, vergelijkbaar metstrip_tags().
Squish
Verwijdert overtollige witruimte metStr::squish().
Eigen regels toevoegen
- Voeg een JSON-bestand toe aan
resources/fullfeed - Voeg het toe aan
pathsinconfig/fullfeed.php
data.url wordt gebruikt, is het aan te raden je extra bestanden vooraan in paths te plaatsen.