Bonjour,
Je cherche à atteindre une page Web qui est derrière un formulaire qui envoie des données par POST.
Voici le script que j'ai pu reconstituer.
Seulement, il se trouve que la page html que je reçois n'est pas complète ! un diff m'informe qu'il manque environ une ligne sur deux... j'ai de la peine à comprendre !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #!/usr/bin/perl -w use strict; use IO::Socket; my ( $contents, $fichier); my $ljsock = IO::Socket::INET->new( PeerAddr => "www.site.com", PeerPort => "80", Proto => "tcp", Type => SOCK_STREAM) or die "Couldn't connect to the site.com web server : $@\n"; my $string = "Param1=Val&Param2=Val"; my $line1 = "POST /page.php HTTP/1.0\r\n"; my $line2 = "Host: www.site.com\r\n"."User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20050101\r\n"; my $line3 = "Content-type: application/x-www-form-urlencode\dr\n"; my $line4 = "Content-length: " . length($string) . "\r\n"; my $line5 = "\r\n"; print $ljsock $line1 . $line2 . $line3 . $line4 . $line5 . $string. "\r\n\r\n"; my $reply = <$ljsock>; while(<$ljsock>) { $contents .= <$ljsock> ; } $fichier='temp2/resultat.html'; open F, ">$fichier"; # ouverture en écriture print F $contents; # écriture close F; }
Partager