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

Résolu
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007 - 12 juil. 2007 à 09:34
 lespagnol9393 - 28 févr. 2016 à 23:11
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

cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
12 juil. 2007 à 10:52
Hello

Regarde ici pour apprendre à récupérer la source d'une page web :
http://www.ircfr.com/codes/TUTORIEL-SOCKETS-TCP-BASES_24897.aspx

Et ici pour écrire dans un fichier texte :
/help /write

Et peut-être ici si tu veux faire une commande en "!" :
/help on text
/help on input

PaDa
3
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
12 juil. 2007 à 16:23
bah juste un detail ptete, si c'est pour recup le code source d'une page qui est un peu grosse le /write risque de ramer peut etre un "file handling" serai plus aproprié à mon avi meme si c'est un poil moins facil a utilisé

ISoKa
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 juil. 2007 à 21:41
A chaque sockread, tu removes le fichier, c'est pas le but je pense :/,tu devrais mettre le removes avant de recup la pages.

Essaye de mettre ça aussi :
sockwrite -n $sockname GET /img/logo_cinemotions_2006.gif HTTP/1.1
sockwrite -n $sockname User-agent : Mozilla/5.0
sockwrite -n $sockname Host: www.cinemotions.com
sockwrite -n $sockname Connection: Keep-Alive
sockwrite -n $sockname $str($crlf,2)
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 juil. 2007 à 21:01
A chaque post tu modifie le code, ça serait sympa pas de me poster un code fixe que tu modifie pas tout le temps (ok le get c'etais un alias, je te conseil de pas l'apellé comme ça étant donné que mirc en a déja un de ce nom).

Donc :
quel version de mirc utilise tu ? $qt n'existe que depuis le 6.17 donc sois tu prend la 6.17 ou superieur, sois tu met $+(",$$2-"), et d'ailleur tu a mis $qt($$2) au lieu de $qt($$2-)
l'echo sur $2- te renvoie bien le fichier de sortie non ?
ensuite, sur le post précédent tu me dis que l'erreur est insufisance parameter, mais sur quel commande ce message apparait t-il ?
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
16 juil. 2007 à 01:40
Quand tu récupere dans la binvar &a, il faut cherché le truc que tu veux, la ligne que tu veux récuo commence par <S> [N] <texte|%var|&binvar>

Il écrit N octets du texte, %var ou &binvar spécifié, dans le fichier commençant au Sième octet. Toute information existante à cet endroit dans le fichier est écrasée.

Note : Si S est -1, les octets sont mis à la fin du fichier. Si N est -1, toutes les informations spécifiées sont écrites dans le fichier.
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
21 juil. 2007 à 01:31
Bon en me replongeant un peu dedans, j'ai réussis :

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 film.txt -1 -1 &a }
on *:sockclose:code_html:{ filter -c film.txt out.txt *<IMG SRC="http://*.jpg* | tokenize 34 $read(out.txt,1) | echo -a $2 }

Ici, dans le sockclose, $2 est egal au lien complet, apparement et j'espere pour toi, aucun lien ne peut contenir d'espace et c'est tant mieux, sinon faudrait refait un autre systeme pour bien prendre uniquement le lien, j'espere que ça ira :)
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
21 juil. 2007 à 14:09
j'ai testé successivement avec deux lien différent et ça marche très bien :

alias code_source {
  .remove film.txt
  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/superman-returns.htm 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 film.txt -1 -1 &a }
on *:sockclose:code_html:{ filter -c film.txt out.txt *<IMG SRC="http://*.jpg* | tokenize 34 $read(out.txt,1) | echo -a $2 }
3
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
12 juil. 2007 à 14:19
Je te remercie PaDa de tes bons conseils et je vais me documenter sur ton lien dès maintenant.
En ce qui concerne les commandes en "!", c'est bon je pense deja maîtriser un petit peu :)

Si d'autres veulent aussi m'aider, vous êtes évidement les bienvenus.

Merci.
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
12 juil. 2007 à 18:13
Alors voilà l'avancement de mon script.

Cependant, l'image gif enregistrée est corrompu.


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

ON *:INPUT:#:{

  if ( !cinemotions == $strip($1) ) { cinemotions }

}

alias cinemotions { sockclose cinemotions | sockopen cinemotions www.cinemotions.com 80 }

on *:sockopen:cinemotions:sockwrite -n cinemotions GET http://www.cinemotions.com/img/logo_cinemotions_2006.gif

on *:sockread:cinemotions: { .remove cinemotions.gif | sockread &a | bwrite cinemotions.gif -1 -1 &a }

on *:sockclose:cinemotions:run cinemotions.gif

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


Chose bizarre, lorsque j'ouvre le gif obtenu avec un éditeur de texte, j'obtiens du code html :/


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

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>301 Moved Permanently</title>

</head>

Moved Permanently


The document has moved here.


<hr>

Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7i Server at www.cinemotions.com Port 80

</html>

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


Des pistes ? Me serais-je trompé quelque part ?
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
12 juil. 2007 à 18:56
Remplace:
GET http://www.cinemotions.com/img/logo_cinemotions_2006.gif

Par:
GET /img/logo_cinemotions_2006.gif $+ $crlf

Et dis si ca marche ;)

PaDa
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
12 juil. 2007 à 19:32
Absolument identique. L'image (.gif) crée est corrompu, elle ne s'affiche pas.


et en l'éditant avec un éditeur de texte je tombe sur:


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head>

Not Found


The requested URL /img/logo_cinemotions_2006.gif was not found on this server.


<hr>

Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7i Server at ns6552.ovh.net Port 80

</html>


Merci de ton aide Pada. Une autre idée ? :)
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
13 juil. 2007 à 01:03
ON *:INPUT:#:{

  if ( !cinemotions == $strip($1) ) { cinemotions }

}

alias cinemotions { sockclose cinemotions | sockopen cinemotions www.cinemotions.com 80 }


on *:sockopen:cinemotions:{

  sockwrite -n cinemotions GET /img/logo_cinemotions_2006.gif HTTP/1.1

  sockwrite -n cinemotions User-agent : Mozilla/5.0

  sockwrite -n cinemotions Host: www.cinemotions.com

  sockwrite -n cinemotions Connection: Keep-Alive

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

}

on *:sockread:cinemotions: { sockread &a | bwrite cinemotions.gif -1 -1 &a }

on *:sockclose:cinemotions:run cinemotions.gif


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


Image toujours corrompue, mais cette fois-ci j'obtient un message
différent en ouvrant l'image avec un éditeur de texte, suivi d'une
cinquantaine de lignes avec des caractères bizarres.


HTTP/1.1 200 OK

Date: Thu, 12 Jul 2007 23:01:20 GMT

Server: Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7i

Last-Modified: Sun, 16 Jul 2006 14:42:43 GMT

ETag: "9a86da-11fd-418b3ed1a9ec0"

Accept-Ranges: bytes

Content-Length: 4605

Connection: close

Content-Type: image/gif
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
13 juil. 2007 à 01:09
En revanche, si en ouvrant mon image avec un éditeur de texte et que je
supprime les 10 premieres lignes correspondantes au dernier code posté
au dessus ( HTTP/1.1 200 OK.................... Content-Type:
image/gif) , en enregistrant, et en réouvrant avec une visionneuse
d'image, j'obtiens bien mon image.


On s'en rapproche, mais où est le soucis ? Ces informations sont en
trop pour bien lire l'image gif, mais comment ne pas les faire
apparaitre ?
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
13 juil. 2007 à 01:23
C'est simple, il faut savoir a partir de quand il faut /bwrite ;)
Donc d'apres ce que tu dis
il faut bwrite apres avoir trouvé Content-Type: image/gif
Tu pourrais reposté ton on sockread pour voir, mais normalement il s'agit juste de stocké une var temporaire apres avoir trouvé le content-type et donc si cette var existe, on bwrite :)
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
13 juil. 2007 à 01:24
Heuuu... Etant un peu débutant, je n'ai absolument rien compris... Désolé :)
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
13 juil. 2007 à 01:25
T'es rapide pour posté mdr...
Je te demande juste de reposter ton code actuel :)
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
13 juil. 2007 à 01:26
Pardon :) Le voici :


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


ON *:INPUT:#:{

  if ( !cinemotions == $strip($1) ) { cinemotions }

}

alias cinemotions { sockclose cinemotions | sockopen cinemotions www.cinemotions.com 80 }


on *:sockopen:cinemotions:{

  sockwrite -n cinemotions GET /img/logo_cinemotions_2006.gif HTTP/1.1

  sockwrite -n cinemotions User-agent : Mozilla/5.0

  sockwrite -n cinemotions Host: www.cinemotions.com

  sockwrite -n cinemotions Connection: Keep-Alive

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

}

on *:sockread:cinemotions: { sockread &a | bwrite cinemotions.gif -1 -1 &a }

on *:sockclose:cinemotions:run cinemotions.gif


##########################
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
13 juil. 2007 à 01:50
ok donc change juste le on sockread comme ça :

on *:sockread:cinemotions: {
sockread &a
if (%bwrite) bwrite cinemotions.gif -1 -1 &a
elseif ($bfind(&a,1,Content-Type:)) set -u5 %bwrite 1     
 }

et dis si ça marche :)
0
lespagnol9393 Messages postés 33 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 22 juillet 2007
13 juil. 2007 à 01:57
Je n'ai plus d'entete (les 10 premieres lignes de codes avec HTTP
etc...) mais par contre le code de l'image a proprement parler ne
commence pu par:


"GIF89aÒblablablabla" mais par "!ÂŽM-`‡�11;6L�1;+¦Áåblablabla"

Il me tronque en fait une ptite dizaine de ligne de code de l'image, donc image toujours corrompue.


Y'a encore un pti soucis...
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
13 juil. 2007 à 02:45
Hum j'ai essayé plusieur truc, je n'y arrive pas :] je repost si je trouve :)
0
Rejoignez-nous