alex-bot
Nulled-Man
- Регистрация
- 4 Май 2007
- Сообщения
- 496
- Реакции
- 161
- Автор темы
- #1
Вот скрипт, я его ковырял, но сам так и не смог довести до ума.. может кто глянет если есть немного времени...
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;
}
//------------------------------------------------
?>