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

Статус
В этой теме нельзя размещать новые ответы.

alex-bot

Nulled-Man
Регистрация
4 Май 2007
Сообщения
497
Реакции
161
Вот скрипт, я его ковырял, но сам так и не смог довести до ума.. может кто глянет если есть немного времени...

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($ch, CURLOPT_URL, $host);
    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch, CURLOPT_COOKIE, 0);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_REFERER, $host);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    $r = curl_exec($ch);
    curl_close($ch);
return $r;
}
//------------------------------------------------
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху