RSS-Parser, der mit Bash oder Python mit einer anderen Software interagiert

466
xreplace

Ich versuche, ein Programm oder Skript zu erstellen (nennen wir es Worker), das in einer Linux-Umgebung ausgeführt wird (wünschenswert wäre Raspbian oder Debian), das Links von RSS-Feeds sammelt und sie zur Verarbeitung an zwei andere Programme sendet.

Hier sind bestimmte Schritte, die gemacht werden Workersollten:

  1. Analysieren Sie mehrere RSS-Feeds aus einem Textdokument, die durch eine neue Zeile getrennt sind

    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. Extrahieren Sie Links aus jedem Feed

  3. Löschen Sie Links mit bestimmten Schlüsselwörtern im <title>Element. Für jeden Feed im Textdokument werden Schlüsselwörter festgelegt, die durch entsprechende Leerzeichen vom jeweiligen Link getrennt sind:

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

    und wenn nicht gesetzt - keine Entfernung erforderlich.

  4. Sortieren Sie die resultierenden Links nach Datum und Uhrzeit nach <published>Element. Beispiel:

    <published>2018-07-27T01:02:03+00:00</published> 
  5. Den neuesten Link an ein handlerProgramm senden (es ist nur ein externes Programm, das bereits vorhanden ist)

    handler https://received-from-RSS.com/abc 
  6. Markieren Sie den gesendeten Link als watched(vorzugsweise nur im Speicher), da er auf Raspberry Pi laufen sollte und ich die SD-Karten-Nutzung reduzieren möchte.

  7. Sammeln Sie eine Antwort von einem handlerProgramm, das einen anderen Link enthalten sollte, und geben Sie den Link handleran ein playerProgramm weiter

    player https://received-from-Handler.com/xyz 
  8. Warten Sie, bis das playerSpiel beendet ist und schließt. Sende dann chronologisch den nächsten (und noch nicht markierten watched) Link zumhandler

    Und wir wiederholen die Stufen 5 bis 8.

  9. Alle 30 Minuten Workersollten Links aus RSS-Feeds aktualisiert werden, z. B. die Schritte 1 bis 9 wiederholen, watchedLinks im Speicher behalten und nicht an den senden handler.

Ich habe das Gefühl, dass diese Funktionalität in Bash oder Python implementiert werden kann. Ich habe keine Programmiererfahrung, brauche aber dringend den WorkerBetrieb. Ich wäre Ihnen daher dankbar, wenn Sie mir spezifische Lernmaterialien oder Codebeispiele empfehlen, die mir beim Schreiben dieses bestimmten Programms helfen würden. Ich bitte nicht, es für mich zu schreiben, ich freue mich über Ihre Hilfe bei jedem einzelnen Schritt. Ich brauche nur ein paar Anweisungen

Ich werde das Ergebnis hier posten, sobald ich fertig bin.

1
Welche Forschung haben Sie selbst unternommen, um zu versuchen, dieses Problem zu lösen? Anfragen zu Lernmaterialempfehlungen sind auf diesem Stapel nicht thematisch. Weitere Informationen finden Sie unter [Über welche Themen kann ich nachfragen?] (https://superuser.com/help/on-topic) und [Welche Arten von Fragen sollte ich vermeiden?] (https://superuser.com/help/dont.) -Fragen). Jeff Zeitlin vor 6 Jahren 1
Antwort schreiben .. xreplace vor 6 Jahren 0
feedparser - RSS-Feed-Parserbibliothek in Python. datetime - Python-Standardbibliothek zum Sortieren nach Datum. [open] (https://github.com/rsmith-nl/scripts/blob/master/open.py) - zum Öffnen externer Programme. [Zeitplan] (https://github.com/dbader/schedule) - für periodische Jobs. Ich würde es jedoch vorziehen, es mit bash zu machen, aber ich habe keine Ahnung, wie ich RSS damit analysieren soll. xreplace vor 6 Jahren 0
Shell-Sprachen sind im Allgemeinen nicht das richtige Werkzeug für ein Projekt wie dieses, obwohl es möglich ist, dass Sie dies mit PowerShell tun könnten. In jedem Fall kann eine gut geschriebene und ausführliche Frage zu [so], wenn Sie einmal versucht haben, es selbst zu tun, und spezifische Probleme identifizieren, die Sie haben, geeigneter sein, als hier zu fragen. Jeff Zeitlin vor 6 Jahren 0

0 Antworten auf die Frage