[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Старенький скрипт поиска музыки вконтакте (HELP)
destroem
В файлах завалялся блокнотик с этим кодом...
Непомню где взял но на тот момент рабочий был smile.gif
А вчера хотел попробывать , а сценарий выдает "Ошибка на сервере.")
Раньше в гугле на эту тему полно скриптов валялось, а щас будто всё стёрли smile.gif
Кому несложно обьясните плиз smile.gif
<?php
exit();
}

// настройки аккаунта - берётся из cookies профиля
$SETS = array('remixmid' => '', 'remixemail' => '', 'remixpass' => '');
// номер странички
$_GET['st'] = abs(intval(@$_GET['st']));
// формируем запрос к vkontakte.ru
$req = "GET /audiosearch.php?act=search&q=".urlencode($_GET['q']).($_GET['st'] !== 0 ? "&st=".$_GET['st'] : "")." HTTP/1.0\r\n";
$req .= "Host: vkontakte.ru\r\n";
$req .= "User-agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)\r\n";
$req .= "Referrer: http://vkontakte.ru/ \r\n";
$req .= "Accept-Language: ru\r\n";
$req .= "Cookie: remixmid=".$SETS['remixmid']."; remixemail=".$SETS['remixemail']."; remixpass=".$SETS['remixpass'].";\r\n";
$req .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$req .= "Pragma: no-cache\r\n";
$req .= "Connection: close\r\n";
$req .= "\r\n";
// посылаем запрос к vkontakte.ru
$fp = @fsockopen("vkontakte.ru", 80, $errno, $errstr, 5);
if (!$fp) exit("Ошибка на сервере.");
fputs($fp, $req);
// получаем ответ
$response = "";
while (!feof($fp)) {
$text = fgets($fp);
$response .= $text;
flush();
}
fclose($fp);
$content = preg_replace("/^(.*?)\r?\n\r?\n(.*)$/is", "$2", $response);
$m1 = $m2 = $m3 = $pages = array();
// данные
preg_match_all("/onclick=\"return operate\(([0-9a-z]+),([0-9a-z]+),([0-9a-z]+),'([0-9a-z]+)',([0-9a-z]+)\);\"/is", $content, $m1, PREG_SET_ORDER);
preg_match_all("/<b id=\"performer([0-9a-z]+)\">(.*?)<\/b> - <span id=\"title([0-9a-z]+)\">(?:<a href='javascript: showLyrics\([0-9a-z]+,[0-9a-z]+\);'>)?(.*?)(?:<\/a>)?<\/span>/is", $content, $m2, PREG_SET_ORDER);
preg_match_all("/<div class=\"duration\">(.*?)<\/div>/is", $content, $m3, PREG_SET_ORDER);
preg_match_all("/<ul class='pageList'>(.*?)<\/ul>/is", $content, $pages, PREG_SET_ORDER);
// для постраничной навигации
$pages = $pages[1][1];
$pages = preg_replace("/href='audiosearch\.php\?q=(.+?)&st=(.+?)'/is", "href='?q=$1&st=$2'", $pages);
$pages = preg_replace("/<li class='current'><a href='#'>(.+?)<\/a><\/li>/is", " | <b>$1</b> | ", $pages);
$pages = str_replace("<li>", " | ", $pages);
$pages = str_replace("</li>", " | ", $pages);
if ($pages) $pages = "({$pages})";
$colspan = 3;
?>
<center><h1>
VKontakte.Music</h1></center>
<br />
<i>
Результаты для запроса:</i> <?=htmlSec($_GET['q'])?> <?=$pages?>
<br />
<small><a
href=".">Вернуться и поискать ещё..</a></small>
<br /><br />

<?
if ($m1 && $m2 && $m3) {?>
<table>
<tr
class="head">
<td>
Исполнитель - Название</td>
<td
width="10%">Длительность</td>
<td
width="10%">Ссылки</td>
</tr>
<tr><td
class="line" colspan="<?=$colspan?>"><hr></td></tr>
<?php

$i = 0;
foreach ($m1 as $k => $v) {
$i++;
$url = "http://cs".$m1[$k][2].".vkontakte.ru/u".$m1[$k][3]."/audio/".$m1[$k][4].".mp3";
$duration_value = $m1[$k][5];
$duration_text = $m3[$k][1];
$author = $m2[$k][2];
$title = $m2[$k][4];
?>
<tr>
<td><?=
$author?> - <?=$title?></td>
<td
align="center"><?=$duration_text?></td>
<td
align="center">
<nobr>
<a
class="piclink" href="<?=$url?>" target="_blank">скачать</a>
</nobr>
</td>
</tr>
<tr><td
class="line" colspan="<?=$colspan?>"><hr></td></tr>
<?
} ?>
</table>
<?
} else { ?>
<p><b>
По вашему запросу ничего не найдено.</b></p>
<?
} ?>

</td>
</tr>
</table>
<br />
<center><small>
© Figaroo</small></center>
<br />
<?php


// функция запрета HTML
function htmlSec ($var) {
return htmlspecialchars($var, ENT_QUOTES);
}

?>




Спустя 2 часа, 53 минуты, 56 секунд (12.11.2009 - 15:43) Gradus написал(а):
1)Запускаете где на локальной машине ? если нет запустите на ней. Контакт банит запросы с известных ему хостов
И поставьте побольше времени в сокете
$fp = @fsockopen("vkontakte.ru", 80, $errno, $errstr, 30);
2)Изменилась страничка поиска у контакта, ну это уже потом

Спустя 34 минуты, 5 секунд (12.11.2009 - 16:17) destroem написал(а):
хм.. на masterhost видел рабочий пример
Запутил на денвере , задавал разные варианты поика .
Да действительно скрипт выполянлся, но "По вашему запросу ничего не найдено" на любой запрос .
Но это тогда обьяснят, что поменялась страница поиска
и тогда сервер хоста куда я ставил получается в бане у контакта : )
Но ведь в сети много таких распиаренных сервисов, а их не трогают ))
Можно глянуть на пример вашего парсера?)

Спустя 6 минут, 10 секунд (12.11.2009 - 16:23) Gradus написал(а):
Какие распиареные ? если вы про видео сервер и тому подобное , то там через js и пользователю надо всё в ручную ещё вставлять js.
Вариант пробывать через прокси или искать хост который не в бане
Глянуть нет ибо я сейчас на работе smile.gif

Спустя 17 минут, 10 секунд (12.11.2009 - 16:40) destroem написал(а):
hxxp://q00p.ru - ну этот уже хз сколько парсит и ничего smile.gif

или hxxp://audiopoisk.com - этот уже только ищет но не скачивает smile.gif
Ну и вчера когда скрипт рабочий искал много видел..

Спустя 18 часов, 18 минут, 13 секунд (13.11.2009 - 10:59) Gradus написал(а):
Тут нету толку от того что вы другой скрипт скачаете,я вам уже писал что контакт банит запросы с известных ему хостов.И варианты решения задачи уже привёл вам smile.gif

Спустя 3 часа, 12 минут, 2 секунды (13.11.2009 - 14:11) destroem написал(а):
То я вам пример распиареных привел..
Да спасибо, я понял ... Буду думать )

Спустя 18 минут, 13 секунд (13.11.2009 - 14:29) Семён написал(а):
На "Вконтакте" давно поменялся алгоритм поиска / выдачи контента от таких как Вы.

Спустя 9 месяцев, 16 дней, 21 час, 57 минут, 50 секунд (30.08.2010 - 11:27) Fost написал(а):
Вот переписал скрипт и получилось www.tflop.ru
сделал коннект к другому сайту с поиском музыки по контакту))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.