Ajout de fils RSS

Guillaume Ollivier
Posts: 36
Joined: Wed Oct 05, 2011 4:57 pm

Ajout de fils RSS

Post by Guillaume Ollivier » Mon Oct 10, 2011 3:21 pm

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)
- ...

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Mon Oct 10, 2011 6:52 pm

je vais faire une petite note pour expliquer le fonctionnement des scripts.
++
JP

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Tue Oct 11, 2011 1:50 pm

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"

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Tue Oct 11, 2011 1:57 pm

Apparemment les tabulations ont été éliminées du code dans mon message précédent !
JP

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Tue Oct 11, 2011 2:21 pm

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
Attachments
aspirateur.py
la classe de base que j'utilise
(3.2 KiB) Downloaded 1029 times
script_exemple.py
code montrant les éléments à implémenter pour intégrer un script à Tirésias II
(3.93 KiB) Downloaded 1055 times

Guillaume Ollivier
Posts: 36
Joined: Wed Oct 05, 2011 4:57 pm

Re: Ajout de fils RSS

Post by Guillaume Ollivier » Thu Oct 13, 2011 8:35 am

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
- ...

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Thu Oct 13, 2011 5:35 pm

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 ?

Guillaume Ollivier
Posts: 36
Joined: Wed Oct 05, 2011 4:57 pm

Re: Ajout de fils RSS

Post by Guillaume Ollivier » Fri Oct 14, 2011 8:14 am

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 !

jean-pierre charriau
Posts: 72
Joined: Sun Oct 09, 2011 12:11 pm

Re: Ajout de fils RSS

Post by jean-pierre charriau » Fri Oct 14, 2011 11:02 am

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 980 times

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Re: Ajout de fils RSS

Post by josquin » Fri Oct 14, 2011 11:19 am

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

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests