Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: vlaman от 15 Декабря 2002, 16:26:59

Название: имитировать поведение IE
Отправлено: vlaman от 15 Декабря 2002, 16:26:59
короче написал скрипт запрашивающий данные с сайта с помощью LWP на перле. он нормально работает и всё такое. испытывался на yahoo.com - делал поиск слова perl (почти как в примерах из документации HTTP::Request::Form). но как только я сделал useragent такой как у microsoft explorer - yahoo перестал воспринимать параметры которые я ему передаю. я пробовал разные useragent строки от разных explorer-ов - но тщетно - yahoo их отбривает. когда написал useragent например "Windows IE 5.0" он воспринимает нормально и всё работает. как можно обмануть такой сайт???нужен модуль для перла или совет. буду благодарен за советы!
Название: имитировать поведение IE
Отправлено: YA от 15 Декабря 2002, 23:12:22
Попробуй с другими сайтами, тоже есть разница?
А зачем тебе нужно быть именно MSIE, конечная цель какая?

В общем случае нужно сопоставлять все заголовки передаваемые твоим скриптом и MSIE.
Название: имитировать поведение IE
Отправлено: vlaman от 16 Декабря 2002, 13:01:57
мне нужно сделать робота, который будет получать с сайта определённую информацию, и чтобы никто не обращал на это внимание (в смысле сисадмин). на yahoo стоит какая-то фильтрация непонятная по user-agent-у. придется ставить проксю какую-нить для отладки видимо :(
Название: имитировать поведение IE
Отправлено: YA от 16 Декабря 2002, 13:10:53
Если делаешь что-то незаконное или просто некорректное по отношению к yahoo, то нормальный админ все равно это отследит кем бы ты не прикидывался - вычислить робота можно.
Кстати, с куками твой скрипт корректно работает?

Я так понял, что по Perl у тебя вопросов нет.
Уехали в Веб-технологии.
Название: имитировать поведение IE
Отправлено: Tronyx от 16 Декабря 2002, 13:42:22
vlaman попробуй с другими сайтами, скорее всего на Яху проверка по кукам или яве. И если работает Windows IE 5.0 то что тебе мешает использовать этот ЮзерАгент?
Название: имитировать поведение IE
Отправлено: vlaman от 16 Декабря 2002, 14:02:16
нет всё дело не в yahoo - просто я на нём начал эксперименты с libwww-perl и столкнулся с такой ерундой что ничего не работает (в смысле поиск со скрипта). стал разбиратся и понял что дело в user-agente.

---- test.pl -------------
use URI::Heuristic;
use HTTP::Request;
use HTTP::Request::Form;
use HTTP::Request::Common;
use HTTP::Cookies;
use HTML::TreeBuilder;
use LWP::UserAgent;
use HTML::Form;

my $ua = LWP::UserAgent->new ( keep_alive => 1,
                timeout => 60,
                agent => "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) ");

$ua -> cookie_jar ( HTTP::Cookies->new(file => "cookies.tmp", autosave => 1) );

my $url="http://www.yahoo.com";
my $url = URI::Heuristic::uf_urlstr ( $url );
print "Getting $url...\\n";
my $response = $ua->request(GET $url);
if ( $response -> is_error () )
 {
  printf "Fatal error: %s\\n", $response -> status_line;
 }
printf "Got \\"%s\\"!\\n", $response -> title();
my $tb = HTML::TreeBuilder->new;
$tb->parse ($response->content);
my @forms = @{$tb->extract_links(qw(FORM))};
my $form = HTTP::Request::Form->new($forms[0][1], $url);
my $name="p";
my $value="perl";
print "Setting $name = $value\\n";
$form->field($name, $value);
my $response = $ua->request($form->press);
print $response->title;
-------- test.pl кончается

этот листинг получает страничку результатов поиска без никаких аргументов. Если же в user-agente слово mozilla заменить хотя бы на mazilla то всё работает на ура. может дело и в куках - но я их вроде как обрабатываю. помогите плиз!!!!