Stocker dans une BDD les infos 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 à 16:27
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 - 18 avril 2011 à 16:13
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 - 18 avril 2011 à 16:13
A voir également:
- Stocker dans une BDD les infos d'un flux RSS
- Tiny tiny rss - Télécharger - Flux RSS
- Capture flux - Télécharger - TV & Vidéo
- Flux earthsounds : les sons de la terre - Guide
- Où sont stockés les mots de passe sur android - Guide
- Flux conn: une histoire de fraude - Accueil - Outils
9 réponses
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
17 avril 2011 à 04:47
17 avril 2011 à 04:47
Trois étapes importantes :
1 - Récupérer le contenu texte du flux RSS (en PHP, tu pourras utiliser file_get_contents($url_du_flux_rss)
2 - Parser le flux RSS, qui est à la base au format XML (en PHP, la classe DOMDocument pourra t'être d'une grande aide)
3 - Rechercher les informations d'intérêt dans ce flux, et les placer dans une base de données (en PHP, à grands coups de foreach(){} et de mysql_query())
1 - Récupérer le contenu texte du flux RSS (en PHP, tu pourras utiliser file_get_contents($url_du_flux_rss)
2 - Parser le flux RSS, qui est à la base au format XML (en PHP, la classe DOMDocument pourra t'être d'une grande aide)
3 - Rechercher les informations d'intérêt dans ce flux, et les placer dans une base de données (en PHP, à grands coups de foreach(){} et de mysql_query())
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:07
18 avril 2011 à 09:07
Bonjour,
Alors j'ai réussi à stocker dans une base de donnée mais malheureusement pour moi les informations venant du flux RSS sont une chaine de caractère.
Exemple : CERTA-2011-AVI-223 : Multiples vulnérabilités dans BlackBerry Enterprise Server (14 avril 2011)
Pour l'instant je n'isole que 3 paramètres : title, link et desciption mais je souhaiterais isoler le nom du logiciel et je ne sais pas trop comment surtout que je souhaiterais exploiter d'autres flux RSS qui n'auront pas le même modèle.
En tout cas, je vous remercie pour votre aide.
Alors j'ai réussi à stocker dans une base de donnée mais malheureusement pour moi les informations venant du flux RSS sont une chaine de caractère.
Exemple : CERTA-2011-AVI-223 : Multiples vulnérabilités dans BlackBerry Enterprise Server (14 avril 2011)
Pour l'instant je n'isole que 3 paramètres : title, link et desciption mais je souhaiterais isoler le nom du logiciel et je ne sais pas trop comment surtout que je souhaiterais exploiter d'autres flux RSS qui n'auront pas le même modèle.
En tout cas, je vous remercie pour votre aide.
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
18 avril 2011 à 12:37
18 avril 2011 à 12:37
Le flux RSS n'est pas une chaîne de caractères ; c'est un format standardisé, qui s'organise sous cette forme :
Ces balises sont loin d'être les seules, d'autres peuvent venir les compléter (voir ici).
Seules les plus utilisées ont été présentées ci-dessus.
Certains navigateurs n'afficheront que le texte, dans ce cas il faudra afficher la source pour visualiser le XML. Sinon, donne un lien vers le flux que tu utilises, je verrai si je peux t'orienter à partir de là.
<rss> <channel> <title>Titre du flux</title> <link>Lien vers le site source</link> <description>Description du contenu du flux</description> <title> <item> <title>Titre du premier article</title> <link>Lien vers l'article source</link> <description>Contenu du premier article</description> </item> <item> <title>Titre du deuxième article</title> <link>Lien vers l'article source</link> <description>Contenu du deuxième article</description> </item> </channel> </rss>
Ces balises sont loin d'être les seules, d'autres peuvent venir les compléter (voir ici).
Seules les plus utilisées ont été présentées ci-dessus.
Certains navigateurs n'afficheront que le texte, dans ce cas il faudra afficher la source pour visualiser le XML. Sinon, donne un lien vers le flux que tu utilises, je verrai si je peux t'orienter à partir de là.
boss183
Messages postés
181
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
7 octobre 2011
17
18 avril 2011 à 14:16
18 avril 2011 à 14:16
Merci pour ta réponse, je te donne quelques liens dont je veux extraire les données :
http://www.certa.ssi.gouv.fr/site/certa.rss
http://www.auscert.org.au/rss.html
https://sc1.checkpoint.com/sc1/web/smartdefense_atomz.xml
donc voilà je sais pas si tu vas pouvoir m'aider, pour l'instant mon code ressemble à ça :
merci d'avance
http://www.certa.ssi.gouv.fr/site/certa.rss
http://www.auscert.org.au/rss.html
https://sc1.checkpoint.com/sc1/web/smartdefense_atomz.xml
donc voilà je sais pas si tu vas pouvoir m'aider, pour l'instant mon code ressemble à ça :
require_once 'rss_fetch.inc'; $urlcerta = 'http://www.certa.ssi.gouv.fr/site/certa.rss'; $rss = fetch_rss($urlcerta); foreach ($rss->items as $item ) { $sql= "INSERT INTO fluxrss VALUES ('$item[title]','$item[link]','$item[description]')"; mysql_query ($sql); }
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
18 avril 2011 à 14:53
18 avril 2011 à 14:53
Ton INSERT laisse penser qu'il n'y a pas de clé primaire dans ta table... Très important !
Et il faut faire attention aux doublons aussi...
Bref.
Sinon, il est préférable d'écrire
Ce code est plus facile à maintenir ; en effet, le jour où tu rajoutes une colonne (comme une clé primaire (j'insiste, c'est très important), la date d'insertion, le numéro d'identification du message...), il n'y aura pas besoin de changer toutes tes requêtes...
Et il faut faire attention aux doublons aussi...
Bref.
Sinon, il est préférable d'écrire
$sql= "INSERT INTO fluxrss (title, link, desc) VALUES ('$item[title]','$item[link]','$item[description]')";
Ce code est plus facile à maintenir ; en effet, le jour où tu rajoutes une colonne (comme une clé primaire (j'insiste, c'est très important), la date d'insertion, le numéro d'identification du message...), il n'y aura pas besoin de changer toutes tes requêtes...
boss183
Messages postés
181
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
7 octobre 2011
17
18 avril 2011 à 14:55
18 avril 2011 à 14:55
ok merci, je fais les changements sur mes requêtes.
Tu as une idée pour extraire que le nom du logiciel pour ces flux RSS ?
Tu as une idée pour extraire que le nom du logiciel pour ces flux RSS ?
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
18 avril 2011 à 14:58
18 avril 2011 à 14:58
N'oublions pas non plus d'échapper certains caractères !
Sinon, les bugs seront fréquents (voire systématiques (voire graves)).
Sinon, les bugs seront fréquents (voire systématiques (voire graves)).
foreach ($rss->items as $item ) { $title = mysql_real_escape_string($item["title"]); $link = mysql_real_escape_string($item["link"]); $description = mysql_real_escape_string($item["description"]); $sql = "INSERT INTO (title, link, description) "; $sql.= "VALUES ('$title','$link','$description')"; mysql_query($sql); }
boss183
Messages postés
181
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
7 octobre 2011
17
18 avril 2011 à 15:12
18 avril 2011 à 15:12
encore merci !
Par contre, je ne sais toujours pas extraire les données qui m'intéressent dans ce flux. Tu as pu regarder les exemple que je t'ai mis ?
Par contre, je ne sais toujours pas extraire les données qui m'intéressent dans ce flux. Tu as pu regarder les exemple que je t'ai mis ?
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
18 avril 2011 à 16:13
18 avril 2011 à 16:13
Oui, c'est bien du beau RSS tout valide !
Par contre je ne connais pas la librairie que tu utilises (rss_fetch.inc), personnellement je parse directement le XML avec DOMDocument (que j'évoquais au premier post).
Par contre je ne connais pas la librairie que tu utilises (rss_fetch.inc), personnellement je parse directement le XML avec DOMDocument (que j'évoquais au premier post).