Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Как выдернуть ссылку? (https://forum.antichat.xyz/showthread.php?t=179201)

mkth 16.02.2010 00:41

Как выдернуть ссылку?
 
Пусть при обращении перлом к сайту он отдает два урла (в теле страницы) вида src='http://site1.com' и src='http://site2.com'.
Можно ли как-нибудь выдернуть ссылку src='http://site2.com' и перейти по ней, скажем, через 30 сек.,чтобы при парсинге не влететь в бан? Очень прошу помочь, заранее спасибо за помощь!

Solker 16.02.2010 01:08

1) preg_match_all("#src='(.+?)'#",$data,$matches);
print_r($matches);

2) sleep(30);

3) header("Location: {$link[1][0]");

mkth 16.02.2010 04:01

Цитата:

Сообщение от Solker
1) preg_match_all("#src='(.+?)'#",$data,$matches);
print_r($matches);

2) sleep(30);

3) header("Location: {$link[1][0]");

Спасибо большое.
Сам составил простенький запрос, а вот как выдрать линк не знаю, очень прошу помочь с кодом...

Код:

#!/usr/bin/perl

 use LWP::UserAgent;

 my $ua = LWP::UserAgent->new;
 $ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)');
 $ua->default_header('VIA' => "someproxy.ru");
 $ua->default_header('Referer' => "http://mysite.ru");
 $ua->default_header('Accept' => "text/html");
 $ua->default_header('Accept-Charset' => "windows-1251,utf-8");

 my $response = $ua->get('http://site.com');

 preg_match_all("#src='(.)'#",$data,$matches);
 print_r($matches);

 sleep(30);

 header("Location: {$link[1][0]");

 if ($response->is_success) {
    print $response->decoded_content;
 }
 else {
    die $response->status_line;
 }

в результате выполнения выводил на печать несколько ссылок, причем в первой ссылке - менялся домен, во второй - домен не меняется... Как выдрать вторую ссылку, и перейти по ней с таймаутом, чтобы ответ был выведен в печать, подмогните пожалуйста, поправьте код... :(

krypt3r 16.02.2010 08:20

Цитата:

#!/usr/bin/perl
preg_match_all("#src='(.)'#",$data,$matches);
print_r($matches);
header("Location: {$link[1][0]");
Поржал :D Один просит пример на перле, второй дает пример на PHP, первый, недолго думая, вставляет PHP-код в перл-скрипт =))

mkth 16.02.2010 16:08

Цитата:

Сообщение от krypt3r
Поржал :D Один просит пример на перле, второй дает пример на PHP, первый, недолго думая, вставляет PHP-код в перл-скрипт =))

А как надо, в перле?


Время: 17:01