Analyseur RSS interagissant avec un autre logiciel utilisant Bash ou Python

1

J'essaie de créer un programme ou un script (appelons-le Worker) fonctionnant dans un environnement Linux (Raspbian ou Debian serait souhaitable), qui collecte les liens à partir de flux RSS et les envoie à 2 autres programmes à des fins de traitement.

Voici les étapes à Workersuivre:

  1. Analyser plusieurs flux RSS d'un document texte séparés par une nouvelle ligne

    https://example.com/feed.xml?id1 nsfw
    https://example.com/feed.xml?id2
    https://example.com/feed.xml?id3
    [...]
    https://example.com/feed.xml?id9`
    
  2. Extraire les liens de chaque flux

  3. Supprimer les liens avec des mots-clés particuliers dans l' <title>élément. Les mots-clés sont définis pour chaque flux dans le document texte, séparés des liens respectifs par des espaces tels que:

    https://example.com/feed.xml?id1 nsfw

    et si non défini - aucun retrait nécessaire.

  4. Triez les liens résultants par date / heure en fonction de l' <published>élément. Exemple:

    <published>2018-07-27T01:02:03+00:00</published>
  5. Envoyer le lien le plus récent à un handlerprogramme (c'est juste un programme externe qui existe déjà)

    handler https://received-from-RSS.com/abc
  6. Marquez le lien envoyé comme watched(de préférence pour le faire en mémoire seulement, car cela devrait fonctionner sur Raspberry Pi et je voudrais réduire l'utilisation de la carte SD)

  7. Recueillir une réponse d'un handlerprogramme qui devrait contenir un autre lien et passer le lien obtenu d' handlerun playerprogramme

    player https://received-from-Handler.com/xyz
  8. Attendez jusqu'à la playerfin de la lecture et de la fermeture. Ensuite, envoyez chronologiquement le watchedlien suivant (et pas encore marqué ) auhandler

    Et nous répétons les étapes 5 à 8.

  9. Toutes les 30 minutes Workerdoivent mettre à jour les liens à partir des flux RSS, par exemple, répéter les étapes 1 à 9, en conservant les watchedliens en mémoire et en ne les envoyant pas au handler.

Je pense que cette fonctionnalité peut être implémentée en Bash ou en Python. Je n'ai aucune expérience en programmation, mais j'ai désespérément besoin d'être Workeropérationnel. Je vous serais donc reconnaissant de bien vouloir me conseiller des supports d’apprentissage spécifiques ou des exemples de code qui me permettraient d’écrire ce programme particulier. Je ne demande pas à l'écrire pour moi, j'apprécierai votre aide avec chaque étape séparée. J'ai juste besoin de quelques indications

Je posterai le résultat ici une fois que j'aurai fini.

Xréplace
la source
1
Quelles recherches avez-vous faites vous-même pour tenter de résoudre ce problème? Les demandes de recommandations de matériel d'apprentissage sont hors sujet sur cette pile; s'il vous plaît voir Quels sujets puis-je demander? et Quels types de questions devrais-je éviter de poser? .
Jeff Zeitlin
écrit réponse ..
xreplace
feedparser - bibliothèque d'analyseurs de flux RSS en Python. datetime - bibliothèque standard Python pour le tri par date. open - pour ouvrir des programmes externes. calendrier - pour les travaux périodiques. Cependant, je préférerais le faire avec bash, mais je ne sais pas comment analyser RSS avec.
Xreplace
Les langages Shell ne seront généralement pas le bon outil pour un projet comme celui-ci, bien qu'il soit possible de le faire avec PowerShell. Dans tous les cas, une fois que vous avez tenté de le faire vous-même et que vous pouvez identifier les problèmes spécifiques que vous rencontrez, une question bien rédigée et détaillée sur le dépassement de pile peut être plus appropriée que celle posée ici.
Jeff Zeitlin