J'ai un logiciel appelé RSS-Cawn que j'essaie de utilisation. En gros, le vérificateur d'alimentation de bureau qui vérifie si les flux RSS sont mis à jour et donnent une notification via le système Notify-OSD de Ubuntu.
Cependant, pour savoir quels flux à vérifier, vous devez répertorier les URL d'alimentation dans un fichier texte dans ~ /.RSS-AWARE/RSSFEEDS.TXT L'un après l'autre dans une liste avec une pellicule entre chaque URL d'alimentation. Quelque chose comme: p> ... semble assez simple? Eh bien, la liste des flux que j'aimerais utiliser est exportée à partir de Google Reader en tant que fichier OPML (c'est un type de XML) et je n'ai aucune idée de l'analyser pour simplement sortir les URL d'alimentation. Il semble que cela devrait être assez simple à l'avance mais je suis excitée. P> J'adorerais si quelqu'un pouvait donner une mise en œuvre dans Python ou Ruby ou quelque chose que je pouvais faire rapidement à une invite. Un script Bash serait génial. P> Merci beaucoup pour l'aide, je suis un programmeur vraiment faible et j'aimerais apprendre à faire cette analyse de base. P> EDIT: Aussi, Voici le fichier OPML J'essaye d'extraire les URL d'alimentation de. p> p>
4 Réponses :
Comme il s'agit d'un fichier XML, vous pouvez utiliser un Query XPath pour extraire les URL.
Dans le fichier XML, on dirait que les URL des flux RSS sont stockées dans les attributs Si vous souhaitez le tester dans votre navigateur Web, vous pouvez utiliser un Testeur XPath en ligne . Si vous souhaitez effectuer cette requête XPath à Python, Cette question explique comment utiliser xpath en python . De plus, les documents LXML ont une page sur l'utilisation de XPath dans lxml qui pourrait être utile. P> xmlurl code>. L'expression xpath
// @ xmlurl code> sélectionnera toutes les valeurs de cet attribut. P>
... et vous pouvez utiliser XPath dans un pipeline bash avec Xmlstarlet.
J'ai écrit un analyseur de liste d'abonnement à cet effet. C'est ce qu'on appelle listparser , et il est écrit en python. Je viens de tester votre fichier OPML et il semble d'analyser parfaitement le fichier. Il effectuera également les étiquettes de vos flux disponibles.
Si vous avez déjà utilisé FeedParser, l'interface doit être familière: p> Il est possible de créer le fichier avec un flux URL à l'aide d'un script similaire à: p> il suffit de remplacer nom d'utilisateur code> avec votre nom d'utilisateur actuel. Fait! P> p>
Vous pouvez également utiliser une regex. J'ai utilisé la recherche de recherche-réponses suivante pour convertir My Google Reader OPML Exporter vers un Bookmark Live-Bookmark Firefox HTML:
^\s+<outline.*?title="(.*?)".*?xmlUrl="(.*?)".*?htmlUrl="(.*?)".*?/> <DT><A FEEDURL="$2" HREF="$3">$1</A>
L'analyse XML était si facile à mettre en œuvre et a fonctionné super pour moi.