[PHP] Скрипт YouTube парсер

Возврат к списку

загружено.jpg

Медиаконтент занимает немаловажное значение в создании белых сайтов или так называемых ГС. Возможно вы обращали внимание, многие блогеры вставляют интересное видео в конце своих записей, для чего это делается? Кто-то говорит что это основной инструмент для привлечения дополнительного трафика с Поисковых систем, кто-то утверждает что это придает трастовость площадке, поисковые системы анализируют время присутствия пользователей на отдельных страницах, и чем дольше пользователь находится на странице, тем она интереснее, значит там располагается интересный контент. Это основные предположения к которым я прислушиваюсь и они имеют аргументированное обоснование и примеры.

Для удобства парсинга видео, написал скрипт, который парсит с YouTube ссылки на видео, по заданным ключевым словам.

YP-300x170.jpg

Преимущества скрипта: - неограниченное количество ключевых слов - возможность задавать количество страниц парсинга - имя для файла с результатом (ссылками) задается вручную - скрипт распространяется бесплатно.

Исходный код:

<?php

//Кодер Zircool
//Блог программиста www.zircool.ru

//Отключить все сообщения об ошибках
/*error_reporting(0);*/

//Инклудим все необходимое

@ini_set('max_execution_time',0);
?>
<html>

<head>
<style>
input:focus{
        outline:none;
        border-color:rgba(255,25,33,.75);
        border-radius:3px;
        -moz-border-radius:3px;
        -webkit-border-radius:3px;
        box-shadow:008pxrgba(255,25,33,.5);
        -moz-box-shadow:008pxrgba(255,25,33,.5);
        -webkit-box-shadow:008pxrgba(255,25,33,.5);
}
input{
        border:1pxsolid#aaa;
        border-radius:3px;
        -moz-border-radius:3px;
        -webkit-border-radius:3px;
        transition:borderlinear.2s,box-shadowlinear.2s;
        -moz-transition:borderlinear.2s,-moz-box-shadowlinear.2s;
        -webkit-transition:borderlinear.2s,-webkit-box-shadowlinear.2s;
}

textarea:focus{
        outline:none;
        border-color:rgba(255,25,33,.75);
        border-radius:3px;
        -moz-border-radius:3px;
        -webkit-border-radius:3px;
        box-shadow:008pxrgba(255,25,33,.5);
        -moz-box-shadow:008pxrgba(255,25,33,.5);
        -webkit-box-shadow:008pxrgba(255,25,33,.5);
}
textarea{
        border:1pxsolid#aaa;
        border-radius:3px;
        -moz-border-radius:3px;
        -webkit-border-radius:3px;
        transition:borderlinear.2s,box-shadowlinear.2s;
        -moz-transition:borderlinear.2s,-moz-box-shadowlinear.2s;
        -webkit-transition:borderlinear.2s,-webkit-box-shadowlinear.2s;
}

table{
        background-color:#cccccc;
        width:400px;
}
tr{
        background-color:#ffffff;
}
</style>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>YouTube Парсер</title>
</head>

<body>

<form action=""method="post">
<center>

<table>
<tr><td><div style='padding:5px;' align="right">Кейворды:</div></td><td><div style='padding:5px;' align="left"><textarea name="keys"rows=5 cols=20 wrap="off"></textarea></div></td></tr>
<tr><td><div style='padding:5px;' align="right">Количество страниц:</div></td><td><div style='padding:5px;' align="left"><input name="page" type="text" value="1"></div></td></tr>
<tr><td><div style='padding:5px;' align="right">Имя файла:</div></td><td><div style='padding:5px;' align="left"><input name="filename" type="text" value="parse.txt"></div></td></tr>

</table>

<table>
<tr><td><center><input name="sub" type="submit" value="Парсить">&nbsp;&nbsp;&nbsp;<input type="reset" value="Сбросить настройки"></center></td></tr>
</table>

<table>
<tr><td><a href="http://zircool.ru/">Программист Zircool</a></td></tr>
</table>
</center>

</form>

<?php

if(isset($_POST['sub'])){
        $keys=$_POST['keys'];
        $page=intval(trim($_POST['page']));
        $filename=trim($_POST['filename']);

        $KeysArray=explode("\n",$keys);
        $KeysArray=array_map("trim",$KeysArray);
        $CountKeys=count($KeysArray);

        //счетчик
        $cpl=0;

        ///Условие
        if($CountKeys>0&&!empty($page)){

                for($i=0;$i<$CountKeys;$i++){

                        //количество страниц
                        for($p=1;$p<=$page;$p++){

                        $YouLink="";

                        //обрабатываем ключевик
                        $key=trim($KeysArray[$i]);
                        $key=urlencode($key);
                        $key=str_replace("%20","+",$key);

                        $PageParse=file_get_contents("http://www.youtube.com/results?search_type=videos&search_query=".$key."&page=".$p);

                        if(strpos($PageParse,"/watch?v=")!=FALSE)
                        {
                                preg_match_all("/href=\"\/watch\?v=([^\"]*)\"/sU",$PageParse,$matches);

                                $resultmovies=array_unique($matches[1]);

                                $moviescount=count($resultmovies);
                                foreach($resultmovies as $movielink)
                                {
                                        $YouLink.="http://www.youtube.com/v/".trim($movielink)."\r\n";
                                        $cpl++;
                                }

                                //Записываем линк YouTube
                                $fp=fopen($filename,"a+");
                                fwrite($fp,$YouLink);
                                fclose($fp);

                                sleep(1);
                        }

                }

                }

        }

        echo"<center><table><tr><td><fontcolor=\"green\">Спарсено $cpl ссылок на видео.Данные ссылки сохранены в файл $filename</font></td></tr></table></center>";

}

?>

</body>

</html>

Скрипт тестировался и корректно работает на Денвере. Для тех кому не хочется копировать исходники, скрипт загрузил архивом, в конце топика ссылка на скачивание.

Недавно наткнулся на один сервис, с помощью которого можно добавить сайт в яндекс. Кстати на сайте еще много нужных сервисов для web мастера.



АлександрАлександр10.10.2016 в 18:25
0
Здравствуйте.

Интересный парсер. Работает отлично. Есть возможность прикрутить выбор роликов с заданной продолжительностью? И парсинг из определенного канала?

С уважением, Александр.
ответная реплика
adminadmin10.10.2016 в 22:33
0
Можно, но нужно дописывать парсер. Его особенность в простоте уже больше 3 лет работает 20 строчек кода.
ответная реплика


Возврат к списку