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

Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
- - Dernière réponse :  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.
Afficher la suite 

Votre réponse

20/64 réponses

Meilleure réponse
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Dernière intervention
22 septembre 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_PaDa
Messages postés
437
Date d'inscription
jeudi 27 avril 2006
Dernière intervention
17 octobre 2008
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_ISoKa
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_wims
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
3
Merci
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 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_wims
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_wims
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
3
Merci
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 :)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_wims
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
3
Merci
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 }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_wims
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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.
Commenter la réponse de lespagnol9393
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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 ?
Commenter la réponse de lespagnol9393
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Dernière intervention
22 septembre 2009
0
Merci
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
Commenter la réponse de cs_PaDa
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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 ? :)
Commenter la réponse de lespagnol9393
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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
Commenter la réponse de lespagnol9393
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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 ?
Commenter la réponse de lespagnol9393
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
0
Merci
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 :)
Commenter la réponse de cs_wims
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
Heuuu... Etant un peu débutant, je n'ai absolument rien compris... Désolé :)
Commenter la réponse de lespagnol9393
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
0
Merci
T'es rapide pour posté mdr...
Je te demande juste de reposter ton code actuel :)
Commenter la réponse de cs_wims
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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


##########################
Commenter la réponse de lespagnol9393
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
0
Merci
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 :)
Commenter la réponse de cs_wims
Messages postés
33
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
22 juillet 2007
0
Merci
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...
Commenter la réponse de lespagnol9393
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
0
Merci
Hum j'ai essayé plusieur truc, je n'y arrive pas :] je repost si je trouve :)
Commenter la réponse de cs_wims

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.