Помогите подправить парсер YouTube

Тема в разделе "Как сделать...", создана пользователем alex-bot, 12 апр 2010.

Статус темы:
Закрыта.
  1. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    497
    Симпатии:
    144
    Вот скрипт, я его ковырял, но сам так и не смог довести до ума.. может кто глянет если есть немного времени...

    PHP:
    <?php
    error_reporting
    (1);
    echo 
    "<title>Парсер YouTube V2.1  (с) by Gogres</title>";

    echo 
    "<form method = \"POST\" >";
    echo 
    "Кейворды (по одному на строку):<br><br>";
    echo 
    "<textarea name=\"keys\" cols=\"70\" rows=\"10\"></textarea><br><br>";
    echo 
    "<input type=\"submit\" value=\"Click & Parse\">";
    echo 
    "</form>";



    if (
    $_POST['keys']){
    $filename=$_POST['filename'];
    $papkaname=$_POST['papkaname'];
    $keys=split("\n"$_POST['keys']);

    foreach (
    $keys as $k=>$key){
    $key=trim($key);
    $reskey=$key;
    $key=urlencode($key);
    $key=str_replace("%20""+"$key);
    $pages=1;
    for(
    $i=0$i<$pages$i++){

    $pageparse=file_get_contents("http://www.youtube.com/results?search_type=videos&search_query=".$key."&page=".$page);
    //echo $pageparse;
    if(strpos($pageparse"/watch?v=")!=false){

    $matches=array();
    $pattern "/href=\"\/watch\?v=([^\"]*)\"/sU";
    preg_match_all($pattern$pageparse$matches);
    $resultmovies=implode(" "$matches[1]);
    $resultmovies=str_replace("&hd=1"""$resultmovies);
    $resultmovies=str_replace("&feature=browch"""$resultmovies);
    $resultmovies=explode(" "$resultmovies);
    $resultmovies=array_unique($resultmovies);
    $moviescount=count($resultmovies);
    $query="http://www.youtube.com/watch?v=".$resultmovies;
    foreach(
    $resultmovies as $movielink){

    //Вот тут надо сохранить спарсеные урлы, а как? Сохраняется только 1
    //И далее не уверен, что правильно все записно

    $data=fopen('data.txt','w');
    for (
    $k=0$k<count($movielink); $k++)    {
        
    $link trim($movielink[$k]);
        if (
    $link!="EMPTY") {
        print 
    "<li>".$link.chr(13).chr(10)."<br>";
        
    fwrite($urls,$link."\r\n");
        
    $content=get_page("http://www.youtube.com/watch?v=".$link);
        
    $text GrabPage($content);
        
    fwrite($data$text);
        }

    }
    }
    sleep(1);
    }
    } }
    flush();
    }

    //------------------------------------------------
    function GrabPage($content//функция обработки страницы можно сразу выбрать 2 значения? Как тут подправить
    {
    $text $content;
    $text preg_match('/<span class=\"long-title\" .*>(.*)<\/span>/'$text);
    $text preg_match_all('|<span class=\"content\">"(.*?)</span>|is'$text); 

    return  
    $text;
    }  
    //------------------------------------------------
    function get_page($host){
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$host);
        
    curl_setopt($chCURLOPT_POST0);
        
    curl_setopt($chCURLOPT_COOKIE0);
        
    curl_setopt($chCURLOPT_HEADER0);
        
    curl_setopt($chCURLOPT_REFERER$host);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
        
    curl_setopt($chCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_0);
        
    $r curl_exec($ch);
        
    curl_close($ch);
    return 
    $r;
    }
    //------------------------------------------------
    ?>
     
  2. -=BlackSmoke=-

    -=BlackSmoke=-

    Регистр.:
    4 авг 2009
    Сообщения:
    281
    Симпатии:
    49
    ;)
    Сохраняется только последний урл, ведь так? Попробуй заменить эту строчку на
    :)
     
Статус темы:
Закрыта.