Überblick
revolution/laravel-fullfeed ist ein Laravel-Paket, das für Feed-Reader den Fließtext aus Webseiten extrahiert.Über site-spezifische Regeln (JSON) werden die benötigten Inhalte je Artikel gezogen.
Ursprünglich war das Feature Teil einer privaten Feed-Reader-Anwendung und wurde extrahiert und als öffentliches Paket veröffentlicht.
Voraussetzungen
- PHP >= 8.4 (verwendet
Dom\HTMLDocument) - Laravel >= 12.x
Installation
Konfiguration und Site-Definitionen veröffentlichen
config/fullfeed.phpresources/fullfeed
Automatische Aktualisierung der Definitionsdateien (composer post-update-cmd)
Wenn Sie die Site-Definitionen beicomposer update automatisch neu veröffentlichen lassen möchten, fügen Sie in composer.json Folgendes hinzu.
Grundlegende Verwendung
Tests
MitFullFeed::expects() können Sie die Facade stubben.
Site-Regeln-Dateien
items_all.json
items_all.json ist die Basis, um Regeln im LDRFullFeed-Format (wedata) einzubinden.Livedoor Reader war ein in Japan bekannter Dienst. Der Dienst selbst wurde eingestellt, die Regel-Daten leben aber als Erbe fort. FullFeed nutzt dieses historische Datenformat.
plus.json
plus.json ist eine Beispieldatei für eigene Regeln.
Felder der Regel-Konfiguration
url: Regex zur Zuordnung der Ziel-URLselector: CSS-Selektor (hat Vorrang gegenüberxpath)xpath: XPath-Angabeenc: Encoding, falls eine Zeichensatz-Konvertierung nötig istcallable: Eigene Extractor-Klasse als Vorverarbeitung (einzeln/als Array)after_callable: Extractor-Klasse, die abschließend als Nachbearbeitung läuft
Ausführungsreihenfolge der Extractors als Pipeline
FullFeed lässt die Extractors nacheinander durch das Pipeline-Pattern von Laravel laufen.- Über
callableangegebene Klassen XPathExtractorSelectorExtractor- Über
after_callableangegebene Klassen
Eingebaute Extractors
RemoveElements
Entfernt die Elemente eines angegebenen Selektors.ReplaceMatches
Ersetzt per Regex zutreffende Zeichenketten (arbeitet auf dem HTML-String).StripTags
Entfernt Tags analog zustrip_tags().
Squish
Entfernt mitStr::squish() überflüssige Leerzeichen.
Eigene Regeln hinzufügen
- Legen Sie in
resources/fullfeedeine JSON-Datei an. - Ergänzen Sie sie in
config/fullfeed.phpunterpaths.
data.url zutreffende Regel verwendet wird, empfiehlt es sich, hinzugefügte Dateien am Anfang von paths einzufügen.