Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Lire une ligne précise sur une page html
#1
J'ai un petit souci:

Je sais faire lire une page web a mon egg, cependant il lit toujours la premiere.
Ce que je voudrais c'est lui donné la ligne a lire, et non pas automatiquement la premiere ...

Voila le code que j'utilise:

Code:
bind pub mn !test pub:test
proc pub:test { nick uhost handle chan arg } {
set lsl(avant) "l'url du site"
set key [http::geturl $lsl(avant)]
set line [http::data $key]
putserv "PRIVMSG $chan : \00302,00$line"
}

Merci d'avance : )
#2
C'est normal, ta variable $line contient en fait l'intégralité de ta source html, tu ne vois que la première ligne car le caractère de nouvelle ligne (\n) est interprété.
Donc, il te faut transformer ta page html en un tableau de lignes pour pouvoir aller lire la bonne:
Code:
bind pub mn !test pub:test
proc pub:test { nick uhost handle chan arg } {
   set lsl(avant) "l'url du site"
   set key [http::geturl $lsl(avant)]
   set arrlines [split [http::data $key] "\n"]
   incr arg -1
   putserv "PRIVMSG $chan : \00302,00$arrlines($arg)"
}
Je pars bien sur du principe que $arg est le N° de la ligne que tu veux lire.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#3
Je test et je te dis si c'est mon bonheur ! Merci : )

(la classe ton nom de domaine ^^;)
#4
Je n'arrive pas a avoir ce que je veux.

L'url ou l'egg va chercher des infos: ici

Je veux pouvoir recuperer les 10 lignes ensemble ou separement, ou sont les titres, mais a la demande.

Merci d'avance CrazyCat : )
#5
ah oui, le code html est mal foutu, difficile à parser...
Il faudrait que tu puisses modifier le générateur pour ajouter un caractère particulier devant chaque ligne intéressante.
Sinon, il faut aller récupérer une chaine particulière (<b>Song Title</b> par exemple), et faire une regexp qui permette de récupèrer les autres lignes, du genre "<td>(*)<\/td>"...

J'essayerais de voir ça demain :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#6
j'ai toujours pas reussi :(
#7
Le plus simple que je vois, c'est de traiter ta chaine ainsi ($webpage contient ta source)
Code:
# on récupère ce qui est entre "<b>Song Title</b></td></tr>" et le premier "</table>" situé après
regsub -all {.*<b>Song Title</b></td></tr>(.*)</table>} $webpage "\\1" webpage
# on sépare sur les "</tr>"
foreach line [split $webpage "</tr>"] {
   # on supprime les balises HTML
   regsub -all {<[^>]>} $line "" line
   # on affiche
   putserv "PRIVMSG $chan :$line"
}
Bon, c'est fait à l'arrache, je ne promet rien :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#8
j'vais m'en débrouiller, merci : )


Possibly Related Threads…
Thread Author Replies Views Last Post
  Récuperation de chaque ligne dans un .txt Epsilon 7 4,477 19/03/2017, 11:46
Last Post: CrazyCat
  [Résolu] récupérer texte dans page html BrYcOu 5 5,466 22/09/2015, 06:46
Last Post: BrYcOu
  [Demande] Modification d'une ligne précise d'un fichier loulou7593 4 4,702 30/10/2013, 17:01
Last Post: loulou7593
  Statistiques d'un canal dans une page HTML CrazyCat 12 7,510 14/02/2013, 12:37
Last Post: CrazyCat
  Lire les dernières lignes d'un fichier texte. Ryan 4 4,980 23/09/2012, 18:34
Last Post: CrazyCat
  Script servant à lire le contenu d'un fichier texte KiBa 4 5,739 07/03/2012, 16:14
Last Post: KiBa
  recuperer les infos d'une page web loulou7593 0 3,523 23/12/2011, 00:20
Last Post: loulou7593
  Afficher les résultats sur une seule ligne ArKeNiS 3 4,645 25/09/2011, 14:24
Last Post: ArKeNiS
  Saut de ligne NesCrex 22 12,246 21/03/2011, 22:22
Last Post: CrazyCat
  Plusieurs messages a heure precise bewess 1 3,671 28/11/2009, 22:14
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)