Récuperer le code source d'une page html via mirc

[Résolu]
Signaler
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007
-
 lespagnol9393 -
Bonjour à tous.

Dans le cadre d'un petit projet personnel, je souhaiterai, suite à une commade tapée sur un channel irc, comme par exemple !getsource , récuperer dans un fichier texte le code source de la page html passée en paramètre.

Cela est-il faisable ?

Bien évidement , je ne demande pas un script tout fait, mais de petites pistes pour y arriver
Merci à tous ceux qui prendront la peine et le temps de m'aider.

64 réponses

Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Ok en fait il semblerai que ça sois
dans l'alias principale dl_img, un moment il y a  :
h img_path $$2

ici il faudrait mettre $qt($$2-) plutôt mais étant donnée que dans ton on input, il n'y a aucun moment ou tu apel /dl_img, je vois pas cmt tu l'apel donc pas sur mais normalement c'est ça.

Ps: fait gaffe, ya un get au lieu d'un set dans ton on input
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

En fait avec un h img_path $qt($$2-) ça ne marche pas.

Alors qu'avec un h img_path $$2 ça fonctionne.


L'erreur retournée est: insufficient parameters (line 160, DL_img.mrc) donc juste sur h img_path $qt($$2-).
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Quel est ta ligne 160 aussi = /
fait un echo sur $2- aussi, juste avant h img_path $qt($$2-) ou h img_path $$2
la ligne 160 doit en dire long =) 
 
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Alors l'echo de $2- juste avant h img_path $gt($$2-) me donne:


C:/Program Files/EasyPHP1-8/mon_image.jpg


(la ligne 160 correspond en fait à h img_path $qt($$2-)

#################################

ON *:INPUT:#:{

  if ( !get == $strip($1) ) {

    window @Echo

    set %img_source http://www.cinemotions.net/data/films/0052/26/1/w115/A0005226.jpg

    set %dest_path C:/Program Files/EasyPHP1-8/TEMP/

    set %dest_img %rlzIO $+ .jpg

    set %img_dest_path %dest_path $+ %rlzIO $+ .jpg

    get %img_source %img_dest_path

    echo @Echo - $+ $date(mm/dd) $+ - $+ $asctime(HH:nn)
$+ -�3;4 %rlzIO $+ .jpg �3;1enregistrée dans %dest_path | halt

  }

}


alias get {

  sockclose dl_img

  h img_site $gettok($remove($$1,http://),1,47)

  h img_get $remove($1,http://,$h(img_site))

  h img_path $qt($$2)

  echo @Echo $2-

  h img_end 0

  sockopen dl_img $h(img_site) 80

}


###########################################
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Méaculpa Wims ;)


Alors pour la version de mirc, c'est effectivement une v6.16. Mais:


- J'ai renommé l'alias suivant tes conseils. Il deviens "getimg" donc le INPUT deviens !getimg

- En testant avec $+(",$$2-"), ça fonctionne parfaitement, il prends
bien en compte mon path avec un espace. Je vais donc rester sur ma
v6.16 (ça impliquera moins de changement)

- Et pour ta dernière question, le message apparaissait sur la commande !get (renommé depuis !getimg)


Pour conclure, je dirai que tout marche tout bien, tout propre, maintenant avec $+(",$$2-")

Avec tous mes remerciements Wims.


Il ne me manque pu, maintenant, qu'à me pencher sur la prochaine partie
de mon script, qui consiste à aller récuperer une partie bien
spécifique d'un code html récupéré, qui correspond à l'adresse de
l'image du film. Je pourrai ainsi le passer en paramètre, sur mon
!getimg, et ainsi télécharger l'image directement.


Car pour le moment j'avais set ma variable en dur (set %img_source
http://www.cinemotions.net/data/films/0052/26/1/w115/A0005226.jpg). Or
maintenant je vais essayer de la passer en parametre, si encore
j'arrive à l'isoler dans le code html que je récupere via ce pti bout
de code (qui ressemble à celui avec lequel j'avais commencé pour
télécharger l'image):


##############################


ON *:INPUT:#:{

  if ( !codehtml == $strip($1) ) {

    window @Auto_IO

    set %dest_path C:/texttemp/

    code_source

    echo @Auto_IO - $+ $date(mm/dd) $+ - $+
$asctime(HH:nn) $+ -�3;12 %addpre_rlzIO $+ .txt �3;1enregistrée dans
%dest_path | halt

  }

}


alias code_source {

  sockclose code_html

  sockopen code_html www.cinemotions.com 80

}


on *:sockopen:code_html:{

  sockwrite -n code_html GET /cinema-tv-dvd/film-serie-acteur-actrice-realisateur/hostel-II.html HTTP/1.1

  sockwrite -n code_html User-agent : Mozilla/5.0

  sockwrite -n code_html Host: www.cinemotions.com

  sockwrite -n code_html Connection: Keep-Alive

  sockwrite -n code_html $str($crlf,2)

}


on *:sockread:code_html: { sockread &a | bwrite %dest_path $+ / $+ %addpre_rlzIO $+ .txt -1 -1 &a }


##############################


Là le fichier se place bien au bon endroit, tout est ok, mais je bloque
sur comment mettre en variable seulement un pti bout du code.

(Pour info, prenons comme exemple http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/saw.html

La partie à récuperer sera donc:
http://www.cinemotions.net/data/films/0150/72/1/w115/affiche_Saw_2004_7.jpg
mais là je bloque...)
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Ben il ne faut pas bwrite tout le code source, seulement allez sur la bonne page avec ton navigateur, et faire control + f (avec fire fox ca marche.) pour cherche du text ds la fenetre, ensuite tu colle ton truc : http://www.cinemotions.net/data/films/0150/72/1/w115/affiche_Saw_2004_7.jpg

ensuite tu regarde s'il y a plusieur fois ce meme truc, ensuite tu peux comparé avec une autre image si tu vois que tu peux récup l'info facilement, avec les token generalement, j'ai pas le temps la mais je regarderai si j'peux faire qqch :)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Merci de ta réponse Wims.


Je suis en fait sur la bonne page html. C'est à partir d'une page du
genre
http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/
$+ %titre_du_film $+ .html qu'il va me falloir récuperer une partie du
code.


Aurais-tu une doc sur la commande /bwrite et surtout comment ne pas pomper tous le code de la page ?

Merci à toi et bonne soirée ;)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

En fait l'idéal serait de commencer à "http://www.cinemotions.net/data/films" et de finir au premier ".jpg" qui suit.

Pour en fait ne garder, par exemple avec la page
http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/superman.html
que:
http://www.cinemotions.net/data/films/0005/71/1/w115/affiche_Superman_1978_2.jpg
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Merci de ta patience... Je vais essayer de voir ce qu'il en est avec cette commande. :)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Me revoici ! Je ne comprends pas vraiment que faire avec les param de la cmd /bwrite.
Pourrais-tu m'aider, si tu es toujours dispo ?

Merci à toi :)
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Histoire de faire court, Il faut utilise //bwrite fichier -1 -1 &binvar pour écrire tout les infos dans un fichier.txt, ensuite il faudrait faire genre un filtre sur *sortie.txt *<IMG SRC=* .Après faut voir ce que tu récup dans le fichier filtré ( sortie.txt ) et voir cmt récup ton lien, on peut aussi le récup direct ds le sockread, mais c'est plus galère :)
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
Hi,

Je ne sais pas si tu as trouvé réponse à ta demande lespagnol9393, je n'ai pas eu le courage de lire tous vos échanges avec Wims.

Pour gérer les path avec espaces, il te suffit, je pense, de rajoutes un $shortfn dans ton input, ou de modifier un peu mon code pour rajouter des quotes autour du chemin d'accès. A voir, mais je crois voir 3 messages au dessus que tu as une solution qui fonctionne... donc je me tais ^^

PaDa
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Bonsoir PaDa :)


Oui effectivement, Wims m'a trouvé une solution qui fonctionne parfaitement.

Il suffisais d'utiliser $+(",$$2-") pour set ma variable img_path.


Soit le code:


#######################


h img_path $+(",$$2-")


#######################


Pendant que je te tiens, pourrais-tu m'apporter un petit peu de ton
aide sur la commande /bwrite ou comment ne mettre en variable qu'une
petite partie de mon code html ? (cf qques post plus haut)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Wims m'a apparement donné un début de réponse, je vais essayer de m'en sortir avec ça, demain :)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Est-il possible, avec un /bwrite, de ne mettre en variable que:

- les <x> premieres lignes ?

- à partir de la <x> ième ligne ?

- les <x> dernières lignes ?


Quelqu'un aurait-il un petit exemple qu'il aurait déjà utilisé dans un script, que je comprenne un petit peu comment ça marche ?
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Lol en fait /bwrite ne marche pas avec les lignes en fait elle contienne tout, meme les saut de lignes donc on parle pas en lignes mais en octet,
Ce que tu demandes, c'est pas faisable, toi ce que tu veux c'est isoler le lien =)
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
+1

Si tu veux vraiment séparer des "lignes" dans une variable binaire, il suffit de faire un $bfind comme il faut pour t'arrêter aux "\n". Ca me parait inutile/tordu/lourd :)

PaDa
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Bonjour à vous deux :)
Oui en effet Wims, ce que je voudrai c'est isoler le lien. Et c'est vrai PaDa, que la technique de travailler sur les lignes pourra devenir bourrine lol

Mais comment donc puis-je travailler sur des octets avec la commandes /bwrite ?
Comment se compte les octets dans un fichiers ? Ou dans une variable, notament dans %a :)
Est-ce un caractère = 1 octet ?
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Il faudrait que tu prennes une page, que tu regarde le code source, tu cherches le lien qui t'interesses, ensuite tu regarde sur la ligne ce que tu peux utiliser a coup sur pour etre sur que c'est la bonne ligne, c/c ici plusieur ligne récupéré de plusieur code source :)
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
22 juillet 2007

Merci Wims :)

Sur la page: http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/superman-returns.html
Le code:
#######################
<IMG SRC="http://www.cinemotions.net/data/films/0166/84/1/w115/affiche_Superman_Returns_2005_2.jpg" border=0 width=90 ALT="Superman Returns"></A></td></tr></table>
#######################

Sur la page: http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/kill-bill-volume-1.html
Le code:
#######################
<IMG SRC="http://www.cinemotions.net/data/films/0063/26/1/w115/A0006326.jpg" border=0 width=90 ALT="Kill Bill : volume 1"></A></td></tr></table>
#######################

Sur la page: http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/scarface.html
Le code:
#######################
<IMG SRC="http://www.cinemotions.net/data/films/0009/31/1/w115/A0000931.jpg" border=0 width=90 ALT="Scarface"></A></td></tr></table>
#######################

Et ainsi de suite. Soit directement:
http://www.cinemotions.com/cinema-tv-dvd/film-serie-acteur-actrice-realisateur/ $+ %NOM_FILM $+ .html
On remarque que le mot qui revient tout le temps dans leds liens a récuperer est "data" ou "
www.cinemotions.net/data/films", ainsi que le fameux ".jpg".

Vous me dites ce que vous en pensez ?