Vue d’ensemble
revolution/laravel-fullfeed est un package Laravel qui extrait le corps de texte des pages web pour les lecteurs de flux.En utilisant des règles par site (JSON), il extrait le contenu nécessaire pour chaque article.
À l’origine, cette fonctionnalité était utilisée dans une application privée de lecteur de flux ; elle a été extraite et publiée en tant que package public.
Prérequis
- PHP >= 8.4 (utilise
Dom\HTMLDocument) - Laravel >= 12.x
Installation
Publication du fichier de configuration et des définitions de sites
config/fullfeed.phpresources/fullfeed
Mise à jour automatique des fichiers de définitions (composer post-update-cmd)
Si vous souhaitez re-publier automatiquement les définitions de sites lors decomposer update, ajoutez ce qui suit à composer.json.
Utilisation de base
Tests
Vous pouvez utiliserFullFeed::expects() pour stubber la Facade.
Fichiers de règles de sites
items_all.json
items_all.json sert de base pour intégrer les règles au format LDRFullFeed (wedata).Livedoor Reader était un service populaire au Japon ; le service lui-même est terminé, mais les données de règles subsistent principalement comme un patrimoine. FullFeed exploite ce format de données historique.
plus.json
plus.json est un exemple pour ajouter vos propres règles.
Champs de configuration des règles
url: expression régulière à faire correspondre à l’URL cibleselector: sélecteur CSS (prioritaire surxpath)xpath: spécification XPathenc: encodage si une conversion de jeu de caractères est nécessairecallable: classe Extractor personnalisée exécutée en pré-traitement (seule ou en tableau)after_callable: classe Extractor exécutée en dernier, en post-traitement
Ordre d’exécution des Extractors en tant que pattern Pipeline
FullFeed enchaîne les Extractors dans l’ordre en utilisant le pattern Pipeline de Laravel.- Classes spécifiées dans
callable XPathExtractorSelectorExtractor- Classes spécifiées dans
after_callable
Extractors intégrés
RemoveElements
Supprime les éléments correspondant aux sélecteurs indiqués.ReplaceMatches
Remplace les chaînes correspondant à une expression régulière (traitement sur la chaîne HTML).StripTags
Retire les balises, équivalent destrip_tags().
Squish
Supprime les espaces superflus avecStr::squish().
Ajouter vos propres règles
- Ajoutez un fichier JSON dans
resources/fullfeed - Ajoutez-le à
pathsdansconfig/fullfeed.php
data.url qui est utilisée, il est recommandé de placer les fichiers ajoutés en tête de paths.