LWP(post) не проходит страницу с параметрами
Добавлено: 05 май 2005, 14:29
Здравствуйте.
Где копать дальше?
Где копать дальше?
форум программистов
https://www.developing.ru/
Код: Выделить всё
use strict;
use LWP;
use HTML::TreeBuilder;
my $url = 'http://www.job.ru/editres.html';
my $br = LWP::UserAgent->new();
my $resp = $br->request(HTTP::Request->new(GET => $url));
die unless $resp->is_success;
my $tree = HTML::TreeBuilder->new_from_content($resp->content);
my @forms = $tree->look_down('_tag', 'form');
my $url2 = 'http://www.job.ru/' . $forms[0]->attr('action');
my @content = $forms[0]->look_down('_tag', 'input');
my @post;
foreach my $t (@content) {
if ($t->attr('type') eq 'hidden') { push @post, $t->attr('name') . '=' . $t->attr('value'); }
}
push @post, "editObjectsForm_objectId=12459752";
push @post, "editObjectsForm_password=jobjob";
$tree->delete();
print $url2, "\n", join('&', @post), "\n"; ## debug info
my $req=HTTP::Request->new(POST => $url2);
$req->content_type('application/x-www-form-urlencoded');
$req->content(join('&', @post));
my $resp2 = $br->request($req);
die unless $resp2->is_success;
open FILE, '>', 'C:/11.html';
print FILE $resp2->content;
close FILE;
Код: Выделить всё
my @post2;
my @content2 = $forms2[0]->look_down('_tag', 'input');
foreach my $t2 (@content2) { push @post2, $t2->attr('name') . '=' . urlcode($t2->attr('value')); }
@content2 = $forms2[0]->look_down('_tag', 'select');
foreach my $t2 (@content2) {
my $opt = $t2->look_down('_tag', 'option', sub { $_[0]->attr('selected') });
push @post2, $t2->attr('name') . '=' . urlcode($opt->attr('value'));
}
@content2 = $forms2[0]->look_down('_tag', 'textarea');
foreach my $t2 (@content2) { push @post2, $t2->attr('name') . '=' . urlcode($t2->as_text()); }
Код: Выделить всё
sub urlcode {
my $str = shift;
$str =~ s/([^a-zA-Z0-9 _\-])/sprintf("%%\U%02x", unpack("C", $1))/ge;
$str =~ s/ /\+/g;
return $str;
}