Спарсить новости

Discussion in 'PHP' started by Radiator, 4 Apr 2011.

  1. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    есть сайт A
    с него наджол спарсить только новости в текстовом формате

    начал с file_get_contents() и preg_match

    нашел код на curl

    PHP:
    $ch curl_init();    curl_setopt($chCURLOPT_URL,$url);        curl_setopt($chCURLOPT_RETURNTRANSFER1);    curl_setopt($chCURLOPT_COOKIESESSION1);        curl_setopt($chCURLOPT_COOKIEJAR'C://xampp/htdocs/cookie.txt');        curl_setopt($chCURLOPT_COOKIEFILE'C://xampp/htdocs/cookie.txt');                curl_setopt($chCURLOPT_FOLLOWLOCATION1);    $result curl_exec ($ch);    file_put_contents('step1.html',$result);    preg_match_all("#id=\"__VIEWSTATE\" value=\"(.*)\"#"$result$matches);    $first=urlencode($matches[1][0]);
    нАдо чтото подобное
     
  2. Alert

    Alert New Member

    Joined:
    23 Feb 2011
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Спарсить единоразово? И постоянно? На выходе несколько html/txt файлов? Что за сайт?
     
  3. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    постоянно

    в html
    заголовок+новость

    сайт erolib.ru

    раздел новости
     
  4. Alert

    Alert New Member

    Joined:
    23 Feb 2011
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Если не горит, вечером могу написать скрипт. Будет заходить на главную, забирать 5-новых новостей и сохранять.
     
  5. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    не горит.буду очень благодарен!
     
  6. Alert

    Alert New Member

    Joined:
    23 Feb 2011
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Поспешил я с выводами. Там защита стоит от воровства. Нужно больше времени. Спасибо за задачу. Я подумаю.
     
    1 person likes this.
  7. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    свяжись со мной плиз 440973237
     
  8. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    что -то я не заметил никакой защиты..
    и задачка ваша детская..

    код на перле.прекрасно парсит новости..
    ссылка, а то форум регулярки попортил..

    http://rghost.ru/5075621
    PHP:
    use strict;
    use 
    warnings;
    use 
    LWP::UserAgent;
    $|=
    1;

    my ($ua) = &browser;
    my $page $ua->get("http://erolib.ru/")->content;
    while (
    $page=~/<a href="\?newsid=(\d*)">/g)
    {    
        
    my $newsid = $1;
        
    my $parsepage $ua ->get("http://erolib.ru/?newsid=$newsid")->content;
        if (
    $parsepage =~/<div id='news-id-$newsid'>(.*)<\/div>/)
        {
            
    wf($newsid.".html" "$1\n");
            print 
    $newsid."\n";
        }

        
    }

    sub browser
    {
    my $ua LWP::UserAgent->new;
    $ua->cookie_jar({});
    $ua->timeout20 ) ;
    $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03790) AskTbPTV2/3.9.1.14019 Firefox/3.6.13");
    return 
    $ua;
    }

    sub wf
    {
        if(
    $_[2])
        {
            
    open F'>'$_[0] or warn "$_[0] - $!\n";
        }
        else
        {
            
    open F'>>'$_[0] or warn "$_[0] - $!\n";
        }
        print 
    F $_[1];
        
    close F;
    }
     
    #8 dpe_x, 4 Apr 2011
    Last edited: 4 Apr 2011
    1 person likes this.