Vous n'êtes pas identifié(e).
Bonjour
Support : UnrealIRCD
Service : Anope
Eggdrop : eggdrop1.6.21
Je cherche un tcl me permettant de réccupérer des infos txt de sites internet.
J'ai testé rss-synd.tcl mais ce n'est pas parfait.
Le probleme du RSS est que ce n'est pas actualisé assez rapidement. Hors je cherche à afficher des infos dans la minute.
Pour les traduire et les dispatcher sur les channels je devrai me débrouiller mais je cale pour les chercher directement sur les sites.
Suis preneur de toute idée, merci
Than
Edit : apparemment je peux également réccupérer des infos par telnet mais j'ai peur que ça tire trop sur le client
Dernière modification par Maxwell (16/04/2013 13:07:42)
Hors ligne
Je ne connais pas grand chose en TCL, mais je ne suis pas sûr d'avoir compris exactement ce que tu recherches.
Est-ce que tu recherches plutôt quelque chose qui t'aide à parser le HTML des pages web ? Ou à aller chercher des informations dans une base SQL (si tu es l'admin de la base de données) ?
Le RSS n'est probablement pas la meilleure solution pour obtenir des informations qui ne sont pas susceptibles de faire l'objet d'une diffusion RSS. Mais si tes infos sont dedans, alors j'imagine que c'est une bonne idée.
EOF
Hors ligne
Je n'ai aucun acces sql à ces infos
En gros je tente de rechercher ces informations :
http://www.dxsummit.fi/CustomFilter.asp … omRange=28
http://www.dxscape.com/wwcw.html
pour les dispatcher en fonction des fréquences (et/ou mode) sur différents salons
C'est actualisé je dirai toutes les minutes suivant les heures et les pays
A force de chercher, j'ai trouvé que ces sites utilisent DXSpider via telnet.
Je ne sais pas si l'eggdrop avec un acces peut se connecter à un compte pour chercher les infos, quand je m'y connecte je suis viré au bout d'une minute pour ne pas ralentir le support.
J'ai trouvé une base de tcl mais j'imprime pas trop le fonctionnement :
https://forums.hamisland.net/showthread … -scripting
Il me semblait qu'avec le tcl http et un autre on pouvait rechercher des infos sur une page web mais je n'arrive pas à me rappeler et je trouve pas sur les forums d'aide, je ne dois pas avoir les bons mots clés.
Au pire je pourrai contacter l'auteur du tcl ci dessus mais pour l'instant je n'ai pas trop envie d'attirer du monde tant que le site et le serveur ne sont pas carrés.
Je me casse la tete pour trouver car c'est une des conditions que je me suis fixé pour lancer le serveur.
Hors ligne
Tu veux absolument utiliser un eggdrop ?
A ta place j'utiliserai un bot en python (supybot par exemple) et http://docs.python.org/2/library/htmlparser.html pour récupérer les infos que tu veux sur le site en question
des pistes éventulles pour parser le html avec tcl :
http://wiki.tcl.tk/9645
http://wiki.tcl.tk/14517
http://tcllib.sourceforge.net/doc/htmlparse.html
pour le module http : http://scripts.eggdrop.fr/details-http-s111.html
Sinon tu pourrais nous faire un petit cours sur les radios amateurs ? moi pas connaitre
good luck
Hors ligne
Absolument me servir d'un eggdrop : non pas forcement, mais au moins je peux trier les $arg pour savoir ce que je veux afficher et où.
Je ne connais pas du tout python et compagnie, il faut que le robot soit hébergé sur le shell eggdrop tcl ou perl ou autre.
Je regarderai tes liens demain, merci pour les pistes
Pour le cours sur les radioamateurs pas de probleme, je ferai une petite pub pour le serveur quand tout sera opérationnel.
Sachant qu'il y a environ 15 000 radioamateurs en france (indicativé), que ça ne s'arrange pas entre les décès et le peu de releve, tenant compte des 2 examens obligatoires pour obtenir son indicatif avant de pouvoir émettre, les nouveaux sont toujours bien accueillis dans tout bon radioclub.
Hors ligne
Bonjour,
Je vais y regardé dans la journée.
Hors ligne
Si je comprend bien sa demande, il aimerait récupéré ceci :
BG6IMK 28120.0 BG6IMK CQ CQ 0846 17 Apr China
UA3ARC-@ 28076.0 VK3FM JT65 -13dB 0746 17 Apr Australia
BG6IMK 28120.0 BG6IMK CQ CQ CQ 0744 17 Apr China
UA3ARC-@ 28121.3 JA1UTZ PSK31 0738 17 Apr Japan
UA3ARC-@ 28121.3 JA1CLW PSK31 0736 17 Apr Japan
UA3ARC-@ 28076.0 JA1OYY JT65 -9dB 0734 17 Apr Japan
OH4SS 28481.0 JA1LJF nice sig. cq 0728 17 Apr Japan
UA3ARC-@ 28121.8 BG4ACE PSK31 CQ 0728 17 Apr China
TR8CA 28076.0 UA3ARC tks 0726 17 Apr European Russia
UA3ARC-@ 28076.0 TR8CA JT65 -13dB 0725 17 Apr Gabon
UA3ARC-@ 28120.0 VK3TDX PSK31 0723 17 Apr Australia
BU2BV-@ 28490.0 VK2CR TNX 0722 17 Apr Australia
UA9UDX-@ 28490.0 VK2CR PETER 0717 17 Apr Australia
HA2MI 28005.0 EX2F JN86LH<>MN72DT 0715 17 Apr Kyrgyzstan
JA4CSJ 28500.0 R9AE tks alex use Small loop ant 0711 17 Apr Asiatic Russia
VK2HV 28442.0 ZS3Y Volker +20dB now qrt 0710 17 Apr South Africa
DU2XXA 28500.0 R9AE tnx Alex 0705 17 Apr Asiatic Russia
R3HD-@ 28018.0 JA7QVI 0703 17 Apr Japan
UA3ARC-@ 28076.0 VK2HFP JT65 -22dB 0657 17 Apr Australia
VK2FJC-@ 28500.0 R9AE 59 Thank You 0657 17 Apr Asiatic Russia
VK2FAJA 28442.0 ZS3Y 0656 17 Apr South Africa
VK2HV 28442.0 ZS3Y Voker with vk4cq 0639 17 Apr South Africa
JF6XQJ 28030.1 V63DX IOTA OC-010 0629 17 Apr Micronesia
UA6GR-@ 28030.2 V63DX 0625 17 Apr Micronesia
BD7DX 28008.0 DU3/N0QM cq cq 0612 17 Apr Philippines
RW3XW 28008.0 DU3/N0QM lonely 0607 17 Apr Philippines
RK4CF-@ 28121.9 BG4ACE tnx QSO 0559 17 Apr China
ZS6WN 28012.5 ZL4PW tnx Paul 599 0542 17 Apr New Zealand
RD9AF-@ 28012.7 ZL4PW 0527 17 Apr New Zealand
VK2FJC-@ 28460.0 W6VA 0401 17 Apr United States
WK6RF 28475.0 VK2FALL 0356 17 Apr Australia
W3LPL 28025.9 5W0M 0304 17 Apr Samoa
JA1JEJ 28026.0 5W0M 0259 17 Apr Samoa
XE2EX 28464.8 VK3MTV Greg 0249 17 Apr Australia
XE2EX 28455.0 W6VA Al 0242 17 Apr United States
XE2EX 28462.0 VK2FAJA 0229 17 Apr Australia
VK2LAW-@ 28480.0 VU2DSI Datta cq VK ZL 0211 17 Apr India
KK1KW 28462.0 VK2FAJA 0209 17 Apr Australia
VK2SD-@ 28480.0 VU2DSI 5/9 report 0158 17 Apr India
WA2VQV 28445.0 5W0M 59 in DE 0143 17 Apr Samoa
NR7Q 28030.0 K3ZMP 0143 17 Apr United States
W7GO 28444.7 5W0M 5W0M not W05M 0141 17 Apr Samoa
K4JAF 28444.8 5W0M strong NW FL 0141 17 Apr Samoa
WA4PBW 28444.7 W05M wrkd w steppir vert 0138 17 Apr United States
K3XT 29600.0 KH6RC FM Randy HI 0137 17 Apr Hawaii
N5OHL-@ 28445.0 5W0M Simplex 0136 17 Apr Samoa
KL2YV 28444.8 5W0M 5/7 in Alaska 0131 17 Apr Samoa
N2ZL-@ 28444.9 5W0M 100 wts from NJ! 0130 17 Apr Samoa
N2ZL-@ 28444.9 5W0M 100 wts from NJ! 0128 17 Apr Samoa
KK1KW 28445.0 5W0M 0127 17 Apr Samoa
Hors ligne
CrazyCat : Je n'ai pas encore trouvé un rss satisfaisant je pense, celui que j'ai n'est pas top, mais si on peut modifier le temps de réaction ça pourrait faire l'affaire. En + le rss annonce au fur et à mesure donc - de souci par rapport à de la réccup html.
Le seul hic : je ne trouve pas de rss comprenant ces données, je vais chercher un peu dans cette direction
Nickoos : oui c'est exactement ce que je veux trier
Je viens de regarder pour tdom mais apparemment il faut le pack.
A la vue du nombre de plantage de mon bot à chaque rehash, ça a l'air chaud à faire cette histoire, je m'en rendais pas bien compte.
Hors ligne
Bonjour,
Je te conseille d'utiliser python pour ce genre d'actions... C'est assez simple à faire.
Code: Python
import urllib
page=urllib.urlopen('http://ircz.fr')
strpage=page.read()
print strpage
Il suffira ensuite de trier le contenu de la page... En python rien de bien compliqué.
Code: Python
import re, urllib
htmlSource = urllib.urlopen("http://www.dxsummit.fi/CustomFilter.aspx?customCount=50&customRange=28").read(200000)
Elements = re.findall('<A (.*?)>(.*?)</A>',htmlSource)
for y in Elements:
print y
...
('href="http://www.qrz.com/db/R9AE"class="qrz" target="_blank"', 'R9AE ')
...
J'ai fait n'importe quoi pour le tri sur la regex, c'est juste pour te montrer la simplicité de la chose
A toi de filtrer ce qui t'intéresse !
Dernière modification par Darks (17/04/2013 12:49:52)
Hors ligne
Le code de Darks est niquel.
Code: Python
Elements = re.findall('<pre>(.*?)</pre>',htmlSource)
Voici ce que donnerai ton parseur pour la page http://www.dxscape.com/wwcw.html
Hors ligne
merci je vais voir avec python mais je connais pas du tout ce langage
j'ai maté les rss sur tous les sites, c'est raté de ce coté il n'y a aucun site equipé avec sur les pages de spots
Je me demande si avec le langage python je peux afficher juste ce qui arrive et non la page entiere.
J'ai discuté avec un om qui me confirme qu'il faut passer par telnet mais je vois pas comment relier l'egg au telnet du cluster sans bouffer ses ressources
Merci de l'aide en tout cas
Hors ligne
L'eggdrop n'est selon moi pas une bonne idée.
Tu peux réaliser un script dans n'importe quel langage, qui périodiquement récupère le contenu d'une page html et le stock soit en base de données, soit en fichier texte, soit dans n'importe quel format que tu le souhaites, puis ensuite utiliser un eggdrop pour lire le contenu de ce fichier. Mais charger un eggdrop de récupérer du contenu web, je suis pas persuadé que ce soit la meilleur solution, c'est assez "lourd" en terme d'exécution.
Ou alors, tu passes par un bot déjà développé en python, tu copies colles ce que j'ai donné et c'est terminé..
Hors ligne
Comme on m'a toujours appris à écouter les gens qui savent, je vais utiliser votre méthode :
Si j'ai bien compris :
- je dois créer un script que je vais intégrer à mon site (via une certaine balise comme php avec <?) ?
- ce script est en python ?
- ce script va générer un fichier qui sera ensuite lu par l'egg
Hors ligne
Hum...
Autant directement faire ton bot en python du coup.
Il y avoir encore le code de Darks qui traine quelque part dans les snippetz.
Hors ligne
Je pense que pour un script de ce genre, il faut éviter d'externaliser un maximum. C'est à dire qu'il faut éviter de faire une partie dans un processus et le reste dans un autre. Ce n'est pas vraiment adapté, et tu verras vite apparaitre des problèmes de synchronisation. Il faut que le processus "central" sache à tout moment quand est-ce qu'il doit aller chercher les informations, quand est-ce qu'il doit les mettre à jour et à la suite de tout cela, quand est-ce qu'il doit traiter ces données (sur IRC dans le cas présent).
En clair, à mon avis, tu devrais faire tout dans un seul bot, soit tout dans un TCL, soit tout dans un bot en Python ou peu importe le langage.
Mon avis perso sur l'utilisation de l'eggdrop pour aller chercher les informations :
Je ne suis probablement pas aussi calé que Darks, Nickoos et CrazyCat sur le sujet parce que je n'ai absolument aucune expérience avec TCL ou Eggdrop, mais l'histoire de la consommation de ressources me parait un peu étrange.
Je ne sais pas si c'est directement lié au fait qu'Eggdrop ou que TCL bouffe un max de ressources pour quoi que ce soit, mais il me semble que dans tous les cas, les requêtes HTTP et le parsing HTML prendront à la fois du temps et des ressources sur le système, quel que soit le langage. Bien entendu, tout dépend de la façon dont est implémentée la chose, mais je suis certain que les bibliothèques les plus répandues sont suffisamment optimisées pour effectuer quelque chose de pas trop gourmand. Est-ce que je me trompe totalement ? (C'est bien possible).
EOF
Hors ligne
Code: Python
import urllib
from bs4 import BeautifulSoup
htmlSource = urllib.urlopen("http://www.dxscape.com/wwcw.html").read(200000)
soup = BeautifulSoup(htmlSource)
text1 = soup.get_text()
text2 = text1.split('\n')
deb = 0
for i in text2:
if ('[WW]' in i):
deb = deb + 1
if deb == 1:
print i
Hors ligne
Un bot en python qui tourne très bien :
https://github.com/sbp/phenny
Hors ligne
je m'arrache les cheveux avec ça :
le python doit se mettre sur un site ou sur mon shell svp ?
j'ai testé ça :
<HTML>
<HEAD><TITLE>Exercice avec Python</TITLE></HEAD>
<BODY>
<DIV ALIGN="center">
<IMG SRC="penguin.gif">
<H2>Page Web interactive</H2>
<P>Cette page est associée à un script Python</P>
<FORM ACTION="http://Serveur/cgi-bin/input_query.py" METHOD="post">
<INPUT TYPE="submit" NAME="send" VALUE="Exécuter le script">
</FORM>
</DIV></BODY></HTML>
j'ai collé le script de OxMoZ dans un fichier nommé dx.py, remplacé le lien dans l'exemple ci dessus et au résultat il affiche simplement le code python
Hors ligne
Sous SSH :
chmod 755 thescript.py
./thescript.py
Hors ligne
le python doit se mettre sur un site ou sur mon shell svp ?
En fait ça dépend de toi, les deux son envisageables. Tu peux exécuter le script python en tant que CGI, si ton serveur web est configuré pour.
Mais je ne crois pas que ce soit la solution la plus adaptée dans ton cas, puisque c'est généralement utilisé pour faire un rendu HTML, comme PHP, puisque c'est du CGI.
Mais tu peux effectivement l'exécuter en le mettant n'importe où sur ton système (ce que tu appelles ton shell). Pour l'exécuter, il faudra effectivement que tu fasses quelque chose comme ce que Darks a indiqué.
Maintenant, il te faut savoir ce qui l'exécutera.
A mon avis il manque une petite étape.
Ce que tu souhaites pouvoir faire semble être l'envoi de données HTML sur IRC. Il faut donc que tu aies un bot qui soit connecté, et qui fasse le travail de récupération de données, pour ensuite les répandre sur les fameux channels.
Il ne s'agit pas simplement d'avoir le bout de code qui récupère les données et qui les affiche.
Dans l'idéal, si tu veux continuer avec Python, il te faut trouver un bot qui gère les extensions en Python, qui te permette de récupérer des données via ces scripts externes (sous forme d'add-on) et de les envoyer sur IRC.
J'imagine que c'est ce que fait "phenny", mais il te faut encore construire le tout, c'est à dire faire reconnaitre ce script comme un add-on pour pouvoir afficher tout ça sur IRC.
Je te suggère de passer sur IRC (irc.exolia.fr #IRCz) quand tu auras un moment. Vu que tu ne sembles pas très à l'aise avec tout ça, je pense que ça serait plus efficace. À toi de voir.
EOF
Hors ligne
Merci, je prépare le kawa et je passe
En fait le tcl ça commence à revenir un peu, c'est pas là mon probleme, c'est surtout que je connais pas du tout python, je sais pas où ça se lance ni comment et je ne sais pas comment le modifier suivant les besoins.
Pour celà que je pensais utiliser directement l'egg. Maintenant si python est la meilleure solution je vais l'utiliser
Hors ligne
Grace à l'aide de Harakiri un txt est créé via un wget
Il me reste à créer un tcl qui va
- lire le fichier
- créer en variable la derniere ligne
- trier et balancer sur les salons ce que je veux
- supprimer le fichier txt
- refaire un wget
- partir de la variable enregistrée pour éviter les répétition
- trier etc...
Je ne sais pas si c'est la meilleure des solutions, mais je devrai me débrouiller à partir de là.
Merci d'avoir une petite pensée pour mon bot qui va planter de nombreuses fois dans les jours à venir
et merci de l'aide
Hors ligne
moi je veux bien mais ...
Your email or IP address matches that of a known spammer and therefore you cannot register here. If you feel this is an error, please contact the administrator or try again later.
Sachant que je possede le domaine orbite.org depuis des années, je vois pas trop comment il peut vous spammer
J'ai testé un alias d'un autre domaine mais même réponse
Hors ligne
pire, suis dans le bordelais
Hors ligne
Bsr,
As-tu résolu ton soucis?
Cdlt, Dio.
Mieux vaut mourir incompris que passer sa vie à s'expliquer. [William Shakespeare]
Bon, c'est Diogene, mais c'est un humain malgré tout [CrazyCat]
Hors ligne