Page 1 of 2

Ajout de fils RSS

Posted: Mon Oct 10, 2011 3:21 pm
by Guillaume Ollivier
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)
- ...

Re: Ajout de fils RSS

Posted: Mon Oct 10, 2011 6:52 pm
by jean-pierre charriau
je vais faire une petite note pour expliquer le fonctionnement des scripts.
++
JP

Re: Ajout de fils RSS

Posted: Tue Oct 11, 2011 1:50 pm
by jean-pierre charriau
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"

Re: Ajout de fils RSS

Posted: Tue Oct 11, 2011 1:57 pm
by jean-pierre charriau
Apparemment les tabulations ont été éliminées du code dans mon message précédent !
JP

Re: Ajout de fils RSS

Posted: Tue Oct 11, 2011 2:21 pm
by jean-pierre charriau
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

Re: Ajout de fils RSS

Posted: Thu Oct 13, 2011 8:35 am
by Guillaume Ollivier
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
- ...

Re: Ajout de fils RSS

Posted: Thu Oct 13, 2011 5:35 pm
by jean-pierre charriau
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 ?

Re: Ajout de fils RSS

Posted: Fri Oct 14, 2011 8:14 am
by Guillaume Ollivier
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 !

Re: Ajout de fils RSS

Posted: Fri Oct 14, 2011 11:02 am
by jean-pierre charriau
voici un nouveau script à copier sous Tiresias\scripts

Re: Ajout de fils RSS

Posted: Fri Oct 14, 2011 11:19 am
by josquin
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