Ajout de fils RSS
-
- Posts: 36
- Joined: Wed Oct 05, 2011 4:57 pm
Ajout de fils RSS
Une explication de la manière d'ajouter des fils RSS serait la bien venue.
Il semble qu'il faille créer un script python placé dans Mes Documents/Tiresias/Scripts
Comment les intégrer ensuite dans Tirésias ?
Comment capitaliser les scripts dans le réseau ?
Enfin quels fils RSS sont susceptibles d'intéresser le collectif ?
Pour ma part je me propose d'ajouter les fils RSS de :
- l'International Institute for Sustainable Development qui est une ONG canadienne ayant un mandat de l'ONU pour rendre compte de nombreuses négociations internationales
- le site "sciences et pseudo sciences"
- le site Agriculture et Environnement (http://www.agriculture-environnement.fr ... ge=backend)
- ...
Il semble qu'il faille créer un script python placé dans Mes Documents/Tiresias/Scripts
Comment les intégrer ensuite dans Tirésias ?
Comment capitaliser les scripts dans le réseau ?
Enfin quels fils RSS sont susceptibles d'intéresser le collectif ?
Pour ma part je me propose d'ajouter les fils RSS de :
- l'International Institute for Sustainable Development qui est une ONG canadienne ayant un mandat de l'ONU pour rendre compte de nombreuses négociations internationales
- le site "sciences et pseudo sciences"
- le site Agriculture et Environnement (http://www.agriculture-environnement.fr ... ge=backend)
- ...
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
je vais faire une petite note pour expliquer le fonctionnement des scripts.
++
JP
++
JP
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
voici un modèle minimaliste de script avec quelques explications
JP
les fichiers .py sont interdits en pièces jointes .
# -*- coding: ISO-8859-1 -*-
"""
modèle de script pour l'aspirateur Tiresias II
une fonction qui retourne le nom de la classe
une classe avec quelques méthodes utilisées par l'aspirateur
set_lasts_urls : indique au script les urls déjà présentes dans la base de données
getInfo : le script renvoit une chaine décrivant le site
getTableName : renvoit un identifiant que l'on retrouvera dans le champ 'source' de la base de données
getPreferredName : renvoit un nom qui sera utilisé pour nommer les noms de fichiers .txt et .ctx (la date et l'heure sont automatiqement rajoutées)
getErrors : renvoit une liste de message d'erreurs du script
get : est la principale fonction, elle renvoit un uplet ( url , auteur, date,titre, article)
elle est invoquée tant que url != None
Dans l'implémentation des scripts existant, je fais dériver la classe d'une classe de base Aspirateur.
cette classe, au premier get va aller lire la page contenant le flux rss, va créer la liste des url
de ce flux, et va pour chaque url non déjà présentes, faire le job en invoquant les méthodes de la
classe dérivée.
"""
def getClassName():
"""
fonction renvoyant le nom de la classe
"""
return "maClasse"
url_flux ="http://www_site_exemple/flux_rss/RSS?flux=general"
class maClasse ( ):
def __init__(self):
self.url_deja_lues=[]
self.table_name ="script_exemple" # info insérée dans la table slqlite dans le champ source (cf visualisation de la base de données)
self.m_preferred_name ="article" # utilisé pour la génération des noms de fichier .txt et .ctx
def getInfo(self):
"""
renvoit une chaine décrivant le site que télécharge ce script.
cette chaine est utilisée pour indiquer aux corpus mise à jour automatiquement
quels sont les fils/sources dans lesquels les textes peuvent être testés par filtre
et intégrés dans les corpus
elle est visualisée par l'interface dans la "liste des fils disponibles"
"""
return unicode('script exemple : http://www_site_exemple/flux_rss/RSS?flux=general ')
def set_lasts_urls(self, url_list):
"""
méthode appelée pour renseigner le script sur les urls qui sont déjà
dans la base de données.
"""
self.url_deja_lues = url_list
def get(self,mode_debug=False):
"""
méthode principale appelée tant que le résultat est différent de ( None, None ,None ,None)
renvoit un uplet de la forme ( url , auteur, date , titre, article)
et ( None, None ,None ,None) lorsque toute les urls ont été lues
la date est au format "jj/mm/aaaa"
l'encodage doit être en unicode !
"""
# code développeur !
# et à la fin
return ( None, None ,None ,None)
def getTableName(self):
"""
en fait le nom de la source , internée ensuite dans le champ source de la table sqlite3
( dans les premières version, chaque script générait une table ...)
"""
return self.table_name
def getPreferredName(self):
"""
nom pour les fichiers textes & ctx
"""
return self.m_preferred_name
def getErrors(self):
"""
renvoit une liste de messages décrivant d'éventuelles erreurs avec l'url
[ "impossible de lire http://www.site_exemple/page1.html" ... ]
"""
return []
if __name__ == "__main__" :
"""
utilisation du code
"""
# création de l'objet
obj = maClasse ()
# on renseigne sur les urls déjà dans la base de données
obj.set_lasts_urls( ["http://www.site_exemple/page34.html","http://www.site_exemple/page12.html" ])
while True:
# interrogation
u = obj.get()
# test sur le premier élément du nuplet
if not u[0] : break # ( None ,...)
# u = ( url , auteur, date,titre, article)
try :
print " url : ", u[0]
print " auteur : ", u[1]
print " date : ", u[2]
print " titre : ", u[3]
print " article : ", u[4]
except :
print "pb affichage"
JP
les fichiers .py sont interdits en pièces jointes .
# -*- coding: ISO-8859-1 -*-
"""
modèle de script pour l'aspirateur Tiresias II
une fonction qui retourne le nom de la classe
une classe avec quelques méthodes utilisées par l'aspirateur
set_lasts_urls : indique au script les urls déjà présentes dans la base de données
getInfo : le script renvoit une chaine décrivant le site
getTableName : renvoit un identifiant que l'on retrouvera dans le champ 'source' de la base de données
getPreferredName : renvoit un nom qui sera utilisé pour nommer les noms de fichiers .txt et .ctx (la date et l'heure sont automatiqement rajoutées)
getErrors : renvoit une liste de message d'erreurs du script
get : est la principale fonction, elle renvoit un uplet ( url , auteur, date,titre, article)
elle est invoquée tant que url != None
Dans l'implémentation des scripts existant, je fais dériver la classe d'une classe de base Aspirateur.
cette classe, au premier get va aller lire la page contenant le flux rss, va créer la liste des url
de ce flux, et va pour chaque url non déjà présentes, faire le job en invoquant les méthodes de la
classe dérivée.
"""
def getClassName():
"""
fonction renvoyant le nom de la classe
"""
return "maClasse"
url_flux ="http://www_site_exemple/flux_rss/RSS?flux=general"
class maClasse ( ):
def __init__(self):
self.url_deja_lues=[]
self.table_name ="script_exemple" # info insérée dans la table slqlite dans le champ source (cf visualisation de la base de données)
self.m_preferred_name ="article" # utilisé pour la génération des noms de fichier .txt et .ctx
def getInfo(self):
"""
renvoit une chaine décrivant le site que télécharge ce script.
cette chaine est utilisée pour indiquer aux corpus mise à jour automatiquement
quels sont les fils/sources dans lesquels les textes peuvent être testés par filtre
et intégrés dans les corpus
elle est visualisée par l'interface dans la "liste des fils disponibles"
"""
return unicode('script exemple : http://www_site_exemple/flux_rss/RSS?flux=general ')
def set_lasts_urls(self, url_list):
"""
méthode appelée pour renseigner le script sur les urls qui sont déjà
dans la base de données.
"""
self.url_deja_lues = url_list
def get(self,mode_debug=False):
"""
méthode principale appelée tant que le résultat est différent de ( None, None ,None ,None)
renvoit un uplet de la forme ( url , auteur, date , titre, article)
et ( None, None ,None ,None) lorsque toute les urls ont été lues
la date est au format "jj/mm/aaaa"
l'encodage doit être en unicode !
"""
# code développeur !
# et à la fin
return ( None, None ,None ,None)
def getTableName(self):
"""
en fait le nom de la source , internée ensuite dans le champ source de la table sqlite3
( dans les premières version, chaque script générait une table ...)
"""
return self.table_name
def getPreferredName(self):
"""
nom pour les fichiers textes & ctx
"""
return self.m_preferred_name
def getErrors(self):
"""
renvoit une liste de messages décrivant d'éventuelles erreurs avec l'url
[ "impossible de lire http://www.site_exemple/page1.html" ... ]
"""
return []
if __name__ == "__main__" :
"""
utilisation du code
"""
# création de l'objet
obj = maClasse ()
# on renseigne sur les urls déjà dans la base de données
obj.set_lasts_urls( ["http://www.site_exemple/page34.html","http://www.site_exemple/page12.html" ])
while True:
# interrogation
u = obj.get()
# test sur le premier élément du nuplet
if not u[0] : break # ( None ,...)
# u = ( url , auteur, date,titre, article)
try :
print " url : ", u[0]
print " auteur : ", u[1]
print " date : ", u[2]
print " titre : ", u[3]
print " article : ", u[4]
except :
print "pb affichage"
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
Apparemment les tabulations ont été éliminées du code dans mon message précédent !
JP
JP
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
nouvel essai , après avoir rajouté le droit de télécharger un fichier .py dans ce forum ..
le fichier script_exemple.py contient un code minimaliste
le fichier aspirateur.py contient la classe de base que j'utilise avec les scripts existant
++
JP
le fichier script_exemple.py contient un code minimaliste
le fichier aspirateur.py contient la classe de base que j'utilise avec les scripts existant
++
JP
- Attachments
-
- aspirateur.py
- la classe de base que j'utilise
- (3.2 KiB) Downloaded 2214 times
-
- script_exemple.py
- code montrant les éléments à implémenter pour intégrer un script à Tirésias II
- (3.93 KiB) Downloaded 2265 times
-
- Posts: 36
- Joined: Wed Oct 05, 2011 4:57 pm
Re: Ajout de fils RSS
autres sources intéressantes avec RSS en agriculture - environnement :
- La France Agricole - actualités : http://www.lafranceagricole.fr/Rss/actu ... ole-8.html
- infOGM : http://www.infogm.org/spip.php?page=backend
- Alerte Environnement : http://alerte-environnement.fr/?feed=rss2
- ...
- La France Agricole - actualités : http://www.lafranceagricole.fr/Rss/actu ... ole-8.html
- infOGM : http://www.infogm.org/spip.php?page=backend
- Alerte Environnement : http://alerte-environnement.fr/?feed=rss2
- ...
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
Je viens de regarder http://www.lafranceagricole.fr/Rss/actu ... ole-8.html - ça à l'air régulier au niveau des articles
je m'en occupe ou tu l'as déjà fait ?
je m'en occupe ou tu l'as déjà fait ?
-
- Posts: 36
- Joined: Wed Oct 05, 2011 4:57 pm
Re: Ajout de fils RSS
si tu peux le faire ce serait super, là j'ai pas le temps mais il va falloir que je m'y mette sur d'autres flux !
-
- Posts: 72
- Joined: Sun Oct 09, 2011 12:11 pm
Re: Ajout de fils RSS
voici un nouveau script à copier sous Tiresias\scripts
- Attachments
-
- aspire_lafranceagricole.py
- script d'aspiration du fil rss de lafranceagricole.fr
- (6.54 KiB) Downloaded 2176 times
Re: Ajout de fils RSS
Il doit y avoir un pb, ça m'envoie un message (2 arguments donnés au lieu de 1) quand je veux ouvrir l'éditeur de filtre
Who is online
Users browsing this forum: No registered users and 0 guests