A voir également:
- Extraire info d'un flux rss en bash
- Extraire une video youtube - Guide
- Crystal disk info - Télécharger - Informations & Diagnostic
- Info pc - Guide
- Extraire le son d'une vidéo - Guide
- Wifi info view - Télécharger - Divers Réseau & Wi-Fi
8 réponses
Salut !
Je pense que oui. Etant donnée qu'un flux RSS est un fichier XML, ca ne doit pas être compliqué.
Tu dois avoir une sorte de balisage comme en HTML dans ce flux du genre <information>l'info de ouf !</information>
Il suffit de lire le fichier ligne par ligne et de chercher la chaine <information> et de faire ton découpage entre 3 blocs et récupérer l'info.
Je ne suis pas un AS en batch mais c'est largement faisable.
Quelques liens pour t'aider
Lire fichier texte => http://www.commentcamarche.net/faq/sujet 5027 comment lire un fichier ligne par ligne
Découper une chaîne de caractères =>http://www.commentcamarche.net/forum/affich 6742165 decouper chaine de caractere
Bon courage!
Je pense que oui. Etant donnée qu'un flux RSS est un fichier XML, ca ne doit pas être compliqué.
Tu dois avoir une sorte de balisage comme en HTML dans ce flux du genre <information>l'info de ouf !</information>
Il suffit de lire le fichier ligne par ligne et de chercher la chaine <information> et de faire ton découpage entre 3 blocs et récupérer l'info.
Je ne suis pas un AS en batch mais c'est largement faisable.
Quelques liens pour t'aider
Lire fichier texte => http://www.commentcamarche.net/faq/sujet 5027 comment lire un fichier ligne par ligne
Découper une chaîne de caractères =>http://www.commentcamarche.net/forum/affich 6742165 decouper chaine de caractere
Bon courage!
Bonsoir Ahmet,
je te remercie de ta réponse.
Je suis allé voir les liens que tu proposes mais, malheureusement, ça ne me suffit pas ... désolé
En fait, je voudrais extraire des informations d'un fichier ayant la forme suivante :
Les seules informations qui m'intéressent sont en fait celles situées entre les balises h3
J'espère avoir été plus clair, merci
je te remercie de ta réponse.
Je suis allé voir les liens que tu proposes mais, malheureusement, ça ne me suffit pas ... désolé
En fait, je voudrais extraire des informations d'un fichier ayant la forme suivante :
<div id="feedContent"> <div class="entry"><h3><a href="http://www.jinnove.com/fr/Agenda/Rencontre-Nationale-des-Directeurs-de-l-Innovation-2009">Rencontre Nationale des Directeurs de l'Innovation 2009 - lundi 25 mai 2009</a></h3><div xml:base="http://www.jinnove.com/flux_rss?export=agenda.xml" class="feedEntryContent">Le thème de cette deuxième rencontre est « Innover pour sortir de la crise et repartir en croissance »...<BR xmlns=""/><A xmlns="" href="http://www.jinnove.com/fr/Agenda/Rencontre-Nationale-des-Directeurs-de-l-Innovation-2009">Lire la suite...</A></div></div> <div style="clear: both;"/><div class="entry"><h3><a href="http://www.jinnove.com/fr/Agenda/Conference-sur-l-Intelligence-Economique5">Conférence sur l'Intelligence Economique - mardi 26 mai 2009</a></h3><div xml:base="http://www.jinnove.com/flux_rss?export=agenda.xml" class="feedEntryContent">L'Intelligence Economique en soutien à l'Innovation. Au programme : "pratiquer l'innovation au quotidien dans l'entreprise"...<BR xmlns=""/><A xmlns="" href="http://www.jinnove.com/fr/Agenda/Conference-sur-l-Intelligence-Economique5">Lire la suite...</A></div></div><div style="clear: both;"/> <div class="entry">.... etc ... </div>
Les seules informations qui m'intéressent sont en fait celles situées entre les balises h3
J'espère avoir été plus clair, merci
oh la la
merci beaucoup beaucoup !
ça me fait beaucoup avancer vers mon objectif final
deux choses cependant :
- pourrais-tu m'expliquer un petit peu le sens de l'expression régulière utilisée (parce que c'est cryptique et que, même en essayant de lire les doc que je peux trouver, ça reste ... magique et mystérieux) (comme ça, je pourrais essayer de comprendre suffisamment pour l'adapter tout seul et ne garder que les titres, sans les balises <A ...></A>
- je voudrais que ce script s'applique à un fichier qui est en ligne. Penses-tu que je peux m'en sortir en utilisant la commande wget par exemple ?
Même si tu ne réponds pas à ce mail, merci encore pour les informations déjà fournies !
merci beaucoup beaucoup !
ça me fait beaucoup avancer vers mon objectif final
deux choses cependant :
- pourrais-tu m'expliquer un petit peu le sens de l'expression régulière utilisée (parce que c'est cryptique et que, même en essayant de lire les doc que je peux trouver, ça reste ... magique et mystérieux) (comme ça, je pourrais essayer de comprendre suffisamment pour l'adapter tout seul et ne garder que les titres, sans les balises <A ...></A>
- je voudrais que ce script s'applique à un fichier qui est en ligne. Penses-tu que je peux m'en sortir en utilisant la commande wget par exemple ?
Même si tu ne réponds pas à ce mail, merci encore pour les informations déjà fournies !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si tu ne veux que les titres :
Pour ce qui est de récupérer le fichier un truc du genre devrait le faire :
sed -n 's#.*<h3>\(.*\)</h3>.*#\1#;s#.*">\(.*\)<.*#\1#p' fichieravec cette modification ça devrait le faire...
Pour ce qui est de récupérer le fichier un truc du genre devrait le faire :
wget url_du_fichier.rss.xmlpour le parser directement au travers d'un pipe avec "sed" :
wget -q -O - url_du_fichier.rss.xml | sed 'blablabla'Pour les explications des regex, j'essaierai de trouver 5 minutes dans la journée pour t'expliquer ça.
Encore merci !
J'avais également réussi vaguement à obtenir les titres (sauf que je l'ai fait sans trop comprendre et en bidouillant ta commande)
sed -n 's#.*>\(.*\)</a.*#\1#p' mon_fichier
(je ne sais pas pourquoi mais la différence avec la commande que tu proposes c'est que dans ton cas, quelques lignes apparaissent en plus que je ne veux pas -pour info, le fichier sur lequel je bosse est le suivant : http://www.jinnove.com/flux_rss?export=agenda.xml)
Finalement, tout marche presque sauf que ... je n'obtiens pas tous les évènements du fichier. En fait, tout se passe comme si sed ne prenant qu'un seul évènement par ligne alors qu'il peut y en avoir plusieurs ! (dans mon exemple je ne récupère que 3 évènements !)
Je me demande ce qui serait le plus simple entre ajouter des lignes dans le fichier entre chacun des évènements avant d'y appliquer la commande sed ou bien modifier cette commande sed (déjà qu'elle me parait bien difficile) afin qu'elle puisse extraire éventuellement plusieurs évènements par ligne et les afficher sur plusieurs lignes.
J'espère avoir été clair.
En tout cas, merci pour ton aide !
J'avais également réussi vaguement à obtenir les titres (sauf que je l'ai fait sans trop comprendre et en bidouillant ta commande)
sed -n 's#.*>\(.*\)</a.*#\1#p' mon_fichier
(je ne sais pas pourquoi mais la différence avec la commande que tu proposes c'est que dans ton cas, quelques lignes apparaissent en plus que je ne veux pas -pour info, le fichier sur lequel je bosse est le suivant : http://www.jinnove.com/flux_rss?export=agenda.xml)
Finalement, tout marche presque sauf que ... je n'obtiens pas tous les évènements du fichier. En fait, tout se passe comme si sed ne prenant qu'un seul évènement par ligne alors qu'il peut y en avoir plusieurs ! (dans mon exemple je ne récupère que 3 évènements !)
Je me demande ce qui serait le plus simple entre ajouter des lignes dans le fichier entre chacun des évènements avant d'y appliquer la commande sed ou bien modifier cette commande sed (déjà qu'elle me parait bien difficile) afin qu'elle puisse extraire éventuellement plusieurs évènements par ligne et les afficher sur plusieurs lignes.
J'espère avoir été clair.
En tout cas, merci pour ton aide !
Ouh la la
je viens de m'apercevoir d'une grosse erreur
en fait c'est beaucoup plus simple que je ne le pensais car je ne travaillant pas sur le bon fichier (en fait j'ais fait "enregistrer sous" à partir de firefox affichant le flux rss et du coup le navifgateur avait ajouté plein de code qui n'était pas dans le fichier d'origine)
En fait la commande suivante marche parfaitement :
sed -n 's#.*<title>\(.*\)</title>.*#\1#p' mon_fichier
Je n'ai plus qu'à trouver comment supprimer la première ligne (et choisir par exemple de ne garder que les 5 suivantes) pour avoir enfin terminé cette petite tâche que je m'étais fixé.
encore merci pour tout !
je viens de m'apercevoir d'une grosse erreur
en fait c'est beaucoup plus simple que je ne le pensais car je ne travaillant pas sur le bon fichier (en fait j'ais fait "enregistrer sous" à partir de firefox affichant le flux rss et du coup le navifgateur avait ajouté plein de code qui n'était pas dans le fichier d'origine)
En fait la commande suivante marche parfaitement :
sed -n 's#.*<title>\(.*\)</title>.*#\1#p' mon_fichier
Je n'ai plus qu'à trouver comment supprimer la première ligne (et choisir par exemple de ne garder que les 5 suivantes) pour avoir enfin terminé cette petite tâche que je m'étais fixé.
encore merci pour tout !