Автор Тема: имитировать поведение IE  (Прочитано 3577 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vlaman

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имитировать поведение IE
« : 15 Декабря 2002, 16:26:59 »
короче написал скрипт запрашивающий данные с сайта с помощью LWP на перле. он нормально работает и всё такое. испытывался на yahoo.com - делал поиск слова perl (почти как в примерах из документации HTTP::Request::Form). но как только я сделал useragent такой как у microsoft explorer - yahoo перестал воспринимать параметры которые я ему передаю. я пробовал разные useragent строки от разных explorer-ов - но тщетно - yahoo их отбривает. когда написал useragent например "Windows IE 5.0" он воспринимает нормально и всё работает. как можно обмануть такой сайт???нужен модуль для перла или совет. буду благодарен за советы!

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имитировать поведение IE
« Ответ #1 : 15 Декабря 2002, 23:12:22 »
Попробуй с другими сайтами, тоже есть разница?
А зачем тебе нужно быть именно MSIE, конечная цель какая?

В общем случае нужно сопоставлять все заголовки передаваемые твоим скриптом и MSIE.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн vlaman

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имитировать поведение IE
« Ответ #2 : 16 Декабря 2002, 13:01:57 »
мне нужно сделать робота, который будет получать с сайта определённую информацию, и чтобы никто не обращал на это внимание (в смысле сисадмин). на yahoo стоит какая-то фильтрация непонятная по user-agent-у. придется ставить проксю какую-нить для отладки видимо :(

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имитировать поведение IE
« Ответ #3 : 16 Декабря 2002, 13:10:53 »
Если делаешь что-то незаконное или просто некорректное по отношению к yahoo, то нормальный админ все равно это отследит кем бы ты не прикидывался - вычислить робота можно.
Кстати, с куками твой скрипт корректно работает?

Я так понял, что по Perl у тебя вопросов нет.
Уехали в Веб-технологии.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
имитировать поведение IE
« Ответ #4 : 16 Декабря 2002, 13:42:22 »
vlaman попробуй с другими сайтами, скорее всего на Яху проверка по кукам или яве. И если работает Windows IE 5.0 то что тебе мешает использовать этот ЮзерАгент?
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн vlaman

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имитировать поведение IE
« Ответ #5 : 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 то всё работает на ура. может дело и в куках - но я их вроде как обрабатываю. помогите плиз!!!!

 

Sitemap 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