ph1l1ster, Code: use WWW::Mechanize; my $mech = WWW::Mechanize->new(); $mech->get('http://lurkmore.ru/%D0%92%D0%B0%D1%83-%D0%B8%D0%BC%D0%BF%D1%83%D0%BB%D1%8C%D1%81'); my @links = $mech->find_all_links(url_regex => qr/https?:\/\/[^lurkmore\.ru]/); for my $link (@links) { print $link->url()."\n"; } zavra, значит сорцы на самом деле не в утф
Граждане очень нужна помощь!!! Замучался уже с этими соксами. у не работает хоть убей. Почему не знаю. Прошу помочь.ОЧЕНЬ НУЖНО!!!! Без соксов все номрально пашет а как только подключаю - болт. PHP: #!/usr/local/bin/perl -w use LWP::UserAgent; use IO::All; use LWP::Protocol::socks; $socks="хх.ххх.ххх.хх:ххххх"; $email="ххххххххххххххххххх"; $pass="хххххххххххх"; $use_socks=1; $ua = new LWP::UserAgent(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5'); if($use_socks) { $ua->proxy([qw(http https)] => 'socks://'.$socks); } $req = HTTP::Request->new(POST=>'http://www.bonprix.ua/ua/login.htm'); $req->referer('http://www.bonprix.ua/ua/login.htm'); $req->content_language('ru'); $req->content_type('application/x-www-form-urlencoded'); $req->content('login='.$email.'&haslo='.$pass); $result = $ua->request($req); if($result->code == 302) {print "$email:$pass - GOOD\n";} else { print "$email:$pass - BAD\n"; }
У тебя в строке Code: if($use_socks) { $ua->proxy([qw(http https)] => 'socks://'.$socks); } и в переменной $socks записано socks://, т.о. получается что адрес прокси начинается с socks://socks:// ! Может в этом косяк?
Да да. тут я автоматом написал. подправил. Но скрипт не работает. Почему не понимаю.Пожалуйста помогите!!!
почитай сначала чем отличаются socks и http proxy! и темболее, Code: $ua->proxy([qw(http https)] он работать не будет, хоть ты усрись!! :\ то же самое если бы ты в браузер сокс сунул. Использование socks в LWP
Вообще то я основывался на вот этом модуле LWP:rotocol::socks; LWP:rotocol::socks И смотрел чекер вкантакта - там точно так же использовался такой же модуль. И я так понимаю успешно. ХЕЛПППП!!!С меня на пиво гарантировано тому кто поможет разобраться.
просто нет ответа через сокс. без сокса нормально а с соксом нет( Соксы хорошие. Беру на сервисе. все нормально.
суть вопроса) на страничке есть java скрипты. при запросе этой странички в ответ ругается что браузер не поддерживает яваскрипты. как и где указать что поддерживает?) копать в сторону LWP::UserAgent? запрос передается постом и все заголовки передаю как в оригинале. пс. на пхп с курлом все работает)
Ты адрес сайта дай, с которым работать пытаешься, тогда можно будет точно сказать. Или код выложи свой
пытаюсь получить индекс.пхп чата бородина. PHP: sub sends{ use LWP::UserAgent; my $ua = LWP::UserAgent->new(); $url1=$_[0]; $post=$_[1]; $ua->agent("Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.4pre) Gecko/20070511 Camino/1.6pre"); $ua->default_header('Accept-Language' => "en-US,en;q=0.5"); $ua->default_header('Accept' => "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); $ua->default_header('Accept-Charset' => "windows-1251,utf-8;q=0.7,*;q=0.7"); my $url = $host."/".$url1; my $req = HTTP::Request->new( POST => $url ); $req->content($post); my $res = $ua->request($req); my $response = $res->content(); return $response; } sends("index.php","PHPSESSID=".$session."&clean-ident=1239095243&br_init_quot=%27php%22spb%22ru%27&br_servtime=1239095249&br_width=".$br_width."&br_height=".$br_height."&br_color=".$br_color."&br_zone=".$br_zone."&br_plugin=false&br_jsreferer=&br_usertime=1239095331906");
2ph1l1ster проблема в том что после print $response; выводится надпись вопрос в том как заставить сервак думать что скрипты поддерживаются и включены?)
и еще пара вопросов) если в строке ищешь нужное с помощью регулярки где находится несколько правильных результатов как их выводить все?) и еще) например в пхп быстрее работать с помощью курла чем с сокетами. а в перле какой способ быстрее чтоб запрашивать удаленную страничку?)
Например при парсинге ип: Code: my $data = "127.0.0.1:8080"; my $pars = $data =~ /(.*)\:(.*)/; if($pars){ print $1.":".$2."\n"; } Думаю здесь понятно Если просто получить страничку (типа как в пхп file_get_contents): Code: use LWP::UserAgent; $ua = new LWP::UserAgent; my $answ = $ua->get("http://ya.ru")->as_string; print $answ;