Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1886 connectés 

 


Dernière réponse
Sujet : lire une page HTML en PERL
stef_dobermann la aucune idée en ce qui concerne les pb de proxy
 
je sais juste que le bout de code que je t'ai donnée fonctionne nikel sous Windows 98 ou Linux, et je l'utilise pour des appli perso (apres amélioration bien sur :D)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
stef_dobermann la aucune idée en ce qui concerne les pb de proxy
 
je sais juste que le bout de code que je t'ai donnée fonctionne nikel sous Windows 98 ou Linux, et je l'utilise pour des appli perso (apres amélioration bien sur :D)
chicha en fait non, ca ne marche toujours pas mais je crois avoir une idee... c'est peut-etre a cause du proxy au taf, non ? Et je fais comment dans ce cas ? Car j'ai teste mes scripts sur le serveur en local (sur http://www/ correspondant à l'intranet) et ca marche tankil. Par contre sur http//www.yyy.com/" j'ai une page vide en retour. Un de mes scripts me renvoie meme dans ce cas, "connection time out... http//www.yyy.com:80"
 
Une idee la dessus ?
stef_dobermann ca devrait te suffir pour commencer :
 
use LWP::Simple;
$page = get("http://www.xxx.com/myfile.html" )
 
 
sinon  
ici : c bien aussi
http://aspn.activestate.com/ASPN/P [...] imple.html
 
ou ya www.CPAN.org
deepcore

chicha a écrit a écrit :

excuz g craque.
c t pas ma question !
 
en fait je ne comprend pas pourquoi on a document.pl dand l' url, alors que c un .html que je veux recuperer ?
 
Merci pour ton aide :)  




 
Parceque là, il appelle un script CGI à priori, mais tu t'en fous. En plus tu peux la bricoler un peu pour qu'elle soit mieux adaptée à ce que tu souhaites.

chicha excuz g craque.
c t pas ma question !
 
en fait je ne comprend pas pourquoi on a document.pl dand l' url, alors que c un .html que je veux recuperer ?
 
Merci pour ton aide :)
deepcore

chicha a écrit a écrit :

Deepcore, j'ai pas l'impression que ton prog liste bien les liens d'une page html referencee par son url... Je dis ca a cause du .pl dans le chemin de l'url.
 
De plus, mon pb vient p-e des proxy a mon taf ? Comment passer outre le cas echeant ?
 
Le get me renvoie tjs une erreur de subroutine non definie malgre le use LWP ();
 
A l'aide ! Sinon je vais etre vire ;) !  




 
Ben non, il liste pas les liens d'une page, il récupére le contenu de la page, après c'est à toi de trouver les liens (faut pas pousser non plus).

chicha Deepcore, j'ai pas l'impression que ton prog liste bien les liens d'une page html referencee par son url... Je dis ca a cause du .pl dans le chemin de l'url.
 
De plus, mon pb vient p-e des proxy a mon taf ? Comment passer outre le cas echeant ?
 
Le get me renvoie tjs une erreur de subroutine non definie malgre le use LWP ();
 
A l'aide ! Sinon je vais etre vire ;) !
chicha J'espere que c une blague... Je ne connais pas xxx.com, desole mais contrairement a certain je ne vais pas sur ce genre de site.
J'ai ecrit xxx comme j'aurais pu ecrire yyy, c'est juste un exemple !
deepcore En cherchant un peu sur le net ( :D ) on trouve des truc comme ça:
 
use LWP::UserAgent;
use HTTP::Request::Common;
 
sub GetDoc {
 
 
local ($Chemin, $Document, $Query_String) = @_;
# On reconstitut l'URL à partir du chemin: www.domaine.ext/répertoire/
# du nom du document: document.pl
# et le cas échéant des paramètre: Param=Exemple&Param2=test
if ($Query_String ne "" ){
 
 
$Complet_URL = "http://" . $Chemin . $Document . "?" . $Query_String;
 
}else{
 
$Complet_URL = "http://" . $Chemin . $Document;  
 
}
my $ua = new LWP::UserAgent;
# C'est ici que l'on devient internet explorer 4 sous windows 98
$ua->agent('Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)');
 
# Envoi de la demande, récupération de la réponse du serveur
$res = $ua->request(GET $Complet_URL);
 
if ($res->is_success) {
 
 
$Resultat = $res->content;
 
}
$Resultat;
 
}
 
Il ne vous reste donc qu'a appeler la fonction
$MonDocument = GetDoc("www.domaine.ext/répertoire/", "document.pl", "Param=Exemple&Param2=test" );
Et à interpréter $MonDocument

 

[jfdsdjhfuetppo]--Message édité par Deepcore--[/jfdsdjhfuetppo]

THE REAL ZIAD

SteF_DOBERMANN a écrit a écrit :

:lol:  :lol:  :lol:  
 
si si on peut mais pas avec open  :ouch: ca marche uniquement en local, pour ouvrir $url="http://www.xxx.com/myfile.html"
 
tu fait un use LWP;
$page = get($url);
 
et dans $page tu as http://www.xxx.com/myfile.html.
ca marche aussi sur  
http://www.xxx.com/myfile.asp
ou autre
 
cherche de la doc sur la LWP c super ce kon peut faire avec :)  



c'est interdit de poster un lien porno :fou:

chicha ca marche pas !
j'ai fait
 
use LWP;
$url="http://www.xxx.com/page.html";
$page=get($url);
print($page);
 
et j'ai l'erreur suivante:
"undifined subroutine... get..."
 
J'ai aussi essaye getc($url) mais $page est vide dans ce cas.
Tentacle

SteF_DOBERMANN a écrit a écrit :

de l'open sur un site qui ne t'appartient pas !!
bien sur :D  




 
bah si il utilise le module dont tu as donné le nom, il n'y aucun problème... et je pense que c'est ce qu'il veut faire.
Pour le open, de toute façon ça ne marcherait pas, faut passer par un ftp :)

chicha merci pour votre aide, je verrais ca demain au taf :)
stef_dobermann de l'open sur un site qui ne t'appartient pas !!
bien sur :D
Tentacle

SteF_DOBERMANN a écrit a écrit :

c normal et la sécurité boredel de merde, c pour les chiens :??:
 
 :lol:  
 
 




 
de quoi tu parles?

stef_dobermann c normal et la sécurité boredel de merde, c pour les chiens :??:
 
 :lol:

 

[jfdsdjhfuetppo]--Message édité par SteF_DOBERMANN--[/jfdsdjhfuetppo]

Tentacle

SteF_DOBERMANN a écrit a écrit :

:lol:  :lol:  :lol:  
 
si si on peut mais pas avec open  :ouch: ca marche uniquement en local, pour ouvrir $url="http://www.xxx.com/myfile.html"
 
tu fait un use LWP;
$page = get($url);
 
et dans $page tu as http://www.xxx.com/myfile.html.
ca marche aussi sur  
http://www.xxx.com/myfile.asp
ou autre
 
cherche de la doc sur la LWP c super ce kon peut faire avec :)  




 
ok ça d'accord, ya des modules pour ça, mais qu'il n'écrive pas open alors :)

stef_dobermann :lol:  :lol:  :lol:  
 
si si on peut mais pas avec open  :ouch: ca marche uniquement en local, pour ouvrir $url="http://www.xxx.com/myfile.html"
 
tu fait un use LWP;
$page = get($url);
 
et dans $page tu as http://www.xxx.com/myfile.html.
ca marche aussi sur  
http://www.xxx.com/myfile.asp
ou autre
 
cherche de la doc sur la LWP c super ce kon peut faire avec :)
Tentacle

chicha a écrit a écrit :

J'ai un script en perl qui ouvre un .html et y recupere les hyperliens.
 
Mon probleme est assez simple: si le .html est sur mon compte sous UNIX, et que le path du .html est du style /home/moncomte/myfile.html, ca marche impec.
 
Par contre, si je teste le script sur une page sur le web, par exemple : $url="http://www.xxx.com/myfile.html",
alors la commande open(file,$url) n a pas la permission d'ouvrir la page !
 
Comment on fait du coup. Car mon but est de coder un crawler qui recupere des pages en les parcourant de liens en liens.
 
Merci pour votre aide !  




 
je suis déjà pas convaincu que l'on puisse utilisé un lien http avec la commande open de PERL... en PHP d'accord, mais en PERL... :)

chicha J'ai un script en perl qui ouvre un .html et y recupere les hyperliens.
 
Mon probleme est assez simple: si le .html est sur mon compte sous UNIX, et que le path du .html est du style /home/moncomte/myfile.html, ca marche impec.
 
Par contre, si je teste le script sur une page sur le web, par exemple : $url="http://www.xxx.com/myfile.html",
alors la commande open(file,$url) n a pas la permission d'ouvrir la page !
 
Comment on fait du coup. Car mon but est de coder un crawler qui recupere des pages en les parcourant de liens en liens.
 
Merci pour votre aide !

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)