Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Заполнение формы на job.ru скриптом


Автор: Dolik 11.1.2005, 07:00
Здравствуйте! Я хочу написать скрипт который автоматически заполняет форму на job.ru.
Я пробую так:
use LWP::Simple;

my $url = 'http://job.ru/addres.html'; #название удаленного хоста
my $form1= 'addResumeForm_speciality'; #название формы
my $form2 = 'addResumeForm_name'; #название формы
my $form3 = 'addResumeForm_phone'; #название формы
my $val1= 'админ'; #значение формы, которое нужно передать
my $val2 = 'Кирилл'; #значение формы, которое нужно передать
my $val3 = '89211234567'; #значение формы, которое нужно передать
my $req = $url.'?'.$form1.'='.$val1.'?'.$form2.'='.$val2.'?'.$form3.'='.$val3;
get($req);

Ошибка помойму в последней строке, напутано с точками и вопросами. Помогите пожалуйста!!! Или это вообще невозможно?

Автор: chaos 11.1.2005, 08:44
Цитата(Dolik @ 11.1.2005, 07:00)
get($req);

На сколько я знаю get вытягивает страницу с сервера, а те нужно совсем не то

Автор: chaos 11.1.2005, 10:46
почитай про HTTP::Request думаю поможет в решении твоей задачи

Автор: s_a_s_h_a 11.1.2005, 10:57
Цитата
my $form1= 'addResumeForm_speciality'; #название формы

Во-первых, не название формы, а имя поля формы.

Во-вторых,
my $req = $url."?".$form1."=".$val1."&".$form2."=".$val2."&".$form3."=".$val3;

Автор: dimes 11.1.2005, 11:51
В третих:
символы отличные от цифр и букв анг. языка не передаются на прямую

что то вроде такого:
Код

my $req = $url."?".&c_str($form1 => $val1,$form2 => $val2);

sub c_str{
my %_data=map { s/([^0-9a-z])/sprintf("%%%x", ord($1))/egi;$_; } @_;
my $_out;
for ( keys %_data ){
 $_out.="&" if ($_out);
 $_out.=$_."=".$_data{$_};
}

return $_out;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)