Как выдернуть ссылку?

Discussion in 'PHP' started by mkth, 15 Feb 2010.

  1. mkth

    mkth New Member

    Joined:
    28 Nov 2007
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Пусть при обращении перлом к сайту он отдает два урла (в теле страницы) вида src='http://site1.com' и src='http://site2.com'.
    Можно ли как-нибудь выдернуть ссылку src='http://site2.com' и перейти по ней, скажем, через 30 сек.,чтобы при парсинге не влететь в бан? Очень прошу помочь, заранее спасибо за помощь!
     
  2. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    1) preg_match_all("#src='(.+?)'#",$data,$matches);
    print_r($matches);

    2) sleep(30);

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

    mkth New Member

    Joined:
    28 Nov 2007
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Спасибо большое.
    Сам составил простенький запрос, а вот как выдрать линк не знаю, очень прошу помочь с кодом...

    Code:
     #!/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;
     }
    
    в результате выполнения выводил на печать несколько ссылок, причем в первой ссылке - менялся домен, во второй - домен не меняется... Как выдрать вторую ссылку, и перейти по ней с таймаутом, чтобы ответ был выведен в печать, подмогните пожалуйста, поправьте код... :(
     
    #3 mkth, 16 Feb 2010
    Last edited: 16 Feb 2010
  4. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Поржал :D Один просит пример на перле, второй дает пример на PHP, первый, недолго думая, вставляет PHP-код в перл-скрипт =))
     
    1 person likes this.
  5. mkth

    mkth New Member

    Joined:
    28 Nov 2007
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    А как надо, в перле?