|
Тема
|
Получаване на инфо от заявка, ебаси топика сложих
|
|
Автор |
voyager (стрелочник) |
Публикувано | 14.03.03 03:03 |
|
Аз таковата... рекох да се натреса тука да ви попитам нещо наготово... понеже не мога да се сетя, а ми се струва, че не е сложно .
Има ли някакъв начин да си гетна инфо да речем от заявка към търсачка, без да го дисплейвам в браузъра? Например от скрипта си пускам питане към Гугъл за еди кво си и вместо отпута, който гугъла би дисплейнал, аз да получа това като информация в моя скрипт? То въпроса се отнася не само до Пърл, ама понеже на пърл ще си парсвам после въпросното инфо, за да си извличам урл-тата... та затова тука питам.
Мерси предварително.
--
- лайфстайл списание в мрежата
| |
Тема
|
Re: Получаване на инфо от заявка, ебаси топика сложих
[re: voyager]
|
|
Автор | Stalker (Нерегистриран) |
Публикувано | 14.03.03 10:00 |
|
Ето пример:
# Create a user agent object
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");
# Create a request
my $req = HTTP::Request->new(POST => 'http://www.perl.com/cgi-bin/BugGlimpse');
$req->content_type('application/x-www-form-urlencoded');
$req->content('match=www&errors=0');
# Pass request to the user agent and get a response back
my $res = $ua->request($req);
# Check the outcome of the response
if ($res->is_success) {
print $res->content;
} else {
print "Bad luck this time\n";
}
| |
Тема
|
Още един пример
[re: voyager]
|
|
Автор | Stalker (Нерегистриран) |
Публикувано | 14.03.03 10:07 |
|
use LWP::UserAgent;
use HTML::LinkExtor;
use URI::URL;
$url = "http://www.perl.org/";; # for instance
$ua = LWP::UserAgent->new;
# Set up a callback that collect image links
my @imgs = ();
sub callback {
my($tag, %attr) = @_;
return if $tag ne 'img'; # we only look closer at <img ...>
push(@imgs, values %attr);
}
# Make the parser. Unfortunately, we don't know the base yet
# (it might be diffent from $url)
$p = HTML::LinkExtor->new(\&callback);
# Request document and parse it as it arrives
$res = $ua->request(HTTP::Request->new(GET => $url),
sub {$p->parse($_[0])});
# Expand all image URLs to absolute ones
my $base = $res->base;
@imgs = map { $_ = url($_, $base)->abs; } @imgs;
# Print them out
print join("\n", @imgs), "\n";
| |
Тема
|
Re: Получаване на инфо от заявка, ебаси топика сложих
[re: voyager]
|
|
Автор |
jordani () |
Публикувано | 14.03.03 11:11 |
|
#!/usr/bin/perl -w
use LWP::UserAgent;
use URI::URL;
$ua = LWP::UserAgent->new();
$ua->agent("Links/2.0"); # или каквото си харесаш за браузер
my $search_engine = "http://www.google.com/search"; #за други url-та виж сам
my $search_string = "o'reily perl cookbook"; # какво ще търсим
my $desired_language = "bg"; #това може и да го пропуснеш
my $URL = url($search_engine); # man URI::URL
$URL->query_form(q =>$search_string , hl => $desired_language);
my $result = $ua->get($URL)->as_string;
print $result; # в $result ти е HTML кода и вече си го парсвай
| |
|
#! /usr/bin/perl
use IO::Socket::INET;
$socket=IO::Socket::INET -> new("www.bnb.bg:80") or die "Cannot open socket $!";
print $socket "GET /bnb/rates.nsf/vWebRatesByMonthBG/\$First HTTP/1.1\nHost: www.bnb.bg\n\n";
while (<$socket>){
$data .=$_;
if ($_=~ /<\/html>/i){$socket->close;}
}
и имаш съдържанието в $data
за POST заявки само сменяш GET с POST
воля, воля... и пак воля...
| |
Тема
|
Re: Получаване на инфо от заявка, ебаси топика сложих
[re: voyager]
|
|
Автор |
voyager (стрелочник) |
Публикувано | 15.03.03 21:28 |
|
Ми аз освен да кажа голямо благодарско на всички. Ще пробвам някой от вариантите и после ще докладвам дали става :)
--
- лайфстайл списание в мрежата
| |
|
|
|
|