Stocker dans BDD des données d'un flux RSS

Fermé
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 15 avril 2011 à 15:36
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 21 avril 2011 à 00:00
Bonjour à tous,

Je souhaiterais récupérer des infos provenant de flux RSS et les stocker directement dans une base de données. Je n'ai pas réellement d'idée pour faire ça, je pense que la difficulté va être d'extraire juste les infos que l'on veut et qu'elles constituent les différents attributs de la table.

Merci d'avance


2 réponses

EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
15 avril 2011 à 15:40
Oui c'est bien ça la difficulté qui somme toute peut ne pas être si difficile. :)
Ça dépend de ce que tu as en tête avec cette extraction de donnée.
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 avril 2011 à 15:51
Je souhaiterais récupérer des flux RSS du Certa (ou autre organisme ...) qui liste les failles de sécurité, je voudrait stocker dans ma base de donnée, le logiciel concerné, sa version et la description de la faille.
Puis, comparer les infos de cette table avec celle d'une autre table qui contient le nom des logiciels et les versions installés sur le poste par exemple.
Si ça correspond j'affiche la description de la faille.

Voilà, je ne sais pas si j'ai été très clair mais si vous pouvez m'aider.

Merci
0
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
15 avril 2011 à 17:12
Ben moi à part le raisonnement il ne me reste plus grand chose... xD
C'est à faire dans quel langage ? Avec quelles technologies ? Est-ce que les données sont clairement positionnées (titre, après un intitulé, etc...) ou faut vraiment chercher au milieu d'un texte ?
Dans le second cas je n'ai vraiment pas d'idée dans le premier il faut utiliser les expressions rationnelles.
Par exemple dans ton flux RSS est-ce que les info se présentent comme ça

Faille trucbidulle
Version : 1.0.5.4.23b5509
Logiciel : Microsoft Windows
Description :
 Lorem ipsum et tralala...

ou comme ça :
Une nouvelle faille de sécurité à été trouvée dans le version 1.0.5.4.23b5509 de l'OS de Microsoft. En effet Windows lorem ipsum et tralala...

Dans le second cas comme le texte peut changer de modèle tout le temps c'est nettement plus compliqué.
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 avril 2011 à 17:24
Alors j'ai réussi à stocker dans une base de donnée mais malheureusement pour moi je me situe dans le deuxième cas et je ne vois pas trop comment isoler le nom du logiciel.
Exemple : CERTA-2011-AVI-223 : Multiples vulnérabilités dans BlackBerry Enterprise Server (14 avril 2011)
Je travaille en PHP/MySQL, je pensais utiliser une requête SQL pour récupérer par exemple le mot après "dans" mais je ne me rappel plus quelle est la syntaxe, avec ^ ou % je ne sais plus, si vous pouvez m'aider.

Merci
0
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
15 avril 2011 à 18:56
SQL ne sert pas tellement à isoler des mots mais à sélectionner des données d'une base et à faire les principales actions (écriture d'entrées, Mises à jour, suppression globalement)...
En outre SQL permet de faire des jointure de table ce qui devrait t'être utile ici ou bien sélectionner les données selon des critères avancés. :)
Effectivement ça devient très difficile AMHA de faire ça en extrayant les données au milieu d'un texte tout en étant efficace à 100%
Mais là je viens de voir dans le cas su CERTA. globalement le modèle est le même. Par contre tu as aussi des choses comme ça
CERTA-2011-ALE-003 : Vulnérabilité dans Adobe Flash Player, Adobe Reader et Acrobat (14 avril 2011)

Comment tu fais dans ce cas là ?
Est-ce que ça te convient que dans le champ logiciel tu est une chaîne qui t'écrive "Adobe Flash Player, Adobe Reader et Acrobat" ou tu veux une entrée par programme ?
En plus on a pas toujours un numéro de version à partir du flux RSS et il faut aller voir le détail pour avoir ce qui est intéressant.
Là c'est claire que c'est du lourd qu'il te faut.
Sur le principe c'est basique mais à mettre en oeuvre c'est une autre paire de manche.
En tout cas les rapports sont modélisés régulièrement ce qui au niveau du raisonnement simplifie bien les choses.
Si tu as d'autres sources que le CERTA ça va compliquer les choses parce que leur modèle est différent. Tu devras donc prévoir de quoi analyser chaque site selon ses spécificités. Aussi il faudra penser au moyen de ne pas répertorier plusieurs fois la même alerte dans la base. Pour le CERTA le numéro est bien (CERTA-2011-AVI-220) mais pour d'autres sites c'est à voir.
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
18 avril 2011 à 09:04
Tout d'abord merci pour ta réponse EminoMeneko, tu résumes très bien mon problème. Je souhaiterais récupérer des infos provenant de plusieurs flux RSS et donc de plusieurs modèles. Pour l'instant je ne récupère que trois paramètres (link, title et description) ; title étant une chaine de caractère type "Adobe Flash Player, Adobe Reader et Acrobat" mais il est vrai que je préférerais avoir une entrée par programme et numéro de version si possible. Je sais vraiment pas trop comment faire ça en tout cas merci pour ton aide
0
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
21 avril 2011 à 00:00
Ben désolé. Je ne crois pas avoir l'expérience pour t'aider dans ta solution mais ça m'a fait et ça me fait toujours penser à UML ton problème. Je ne suis pas spécialiste mais il doit bien y avoir un design pattern qui répond à ton problème. En fait je m'y suis un peu intéressé et il y en a un qui sert à définir un objet global et des sous objets avec leurs spécificités de manière astucieuse.
En tout cas il n'existe pas de projet impossible, juste des gens qui savent pas comment faire et en l'occurrence je suis dans ce cas là aussi ^^'.
0