Php парсер ссылок на торрент
Автор : Акшонин Виталий
E-Mail: akshonin-собака-майл-ру
16 ноября 2011 года
Эта небольшая статья будет полезна вебмастерам, которые на своих интернет ресурсах предлагают фильмы, музыку, игры, софт или другой полезный контент который часто можно найти в торрент раздачах.
Обычно вебмастера делая новость для очередного медиа файла ставят ссылку на скачивание этого файла с популярных файлообмеников - летитбит, депозит и тому подобные. Но как мы все знаем ссылки эти живут пока ими пользуются, и если этой ссылкой никто не пользовался она через месяц умирает, и соответственно посетители сайта увидев надпись «Запрашиваемый файл не найден» закроют страницу файлообменники и страницу вашего сайта.
Чтобы клиент (посетитель) остался довольным вашим ресурсом необходимо следить за живучестью ссылок или периодически обновлять ссылки на дееспособные. Работа эта очень кропотливая и нудная, но её вполне можно автоматизировать. Пусть, как говорят, работают механизмы.
Вечно живую ссылки на медиа файл мы будем брать на лету (в реальном времени) с бесплатного торрент трекера tfile.ru. Помимо ссылки на файл также подтянем название файла, размер файла, количество сидов и пиров (отдающих и принимающих).
Полный php код приведен ниже, а сейчас разберем механизм работы парсера.
Запрос к торрнет трекеру выглядит примерно так:
__ИМЯ__ – например, убить боба.
На сайте результат запроса будет выглядеть так:

Получаем выдачу через регулярные выражения в свою переменную:
preg_match("/Загрузка...\<\/center\>\<\/div\>(.*)\<div class=\"pager\"\>Страницы/msi", $text, $out);
$tfile = $out[1];
Нам необходимо отсеять ненужные ссылки и ненужный текст из получаной таблицы. Опишу кратко проделанные действия:
- разделем текст на строки через <tr> и каждую строку через цикл (for) обрабатываем шаблонно;
- для моего сайта я оставил только строки содержащие текст: мультфильм, аниме, фильм;
- произвел прочие преобразования удалив ненужные теги и часть ненужного текста.
Результат получился следующим:

На моём сайте теперь всегда стоят живые ссылки с торрент трекера. Пример страницы на данный момент: http://kharitoshka.ru/video.php?id=20.
Полный текст кода смотрите ниже:
$put = "http://tfile.ru/forum/ssearch.php?q=".urlencode($runame)."&f=&g=&ql=&a=&d=&io=1&o=&size_min=0&size_max=0";
$text = file_get_contents ($put);
preg_match("/Загрузка...\<\/center\>\<\/div\>(.*)\<div class=\"pager\"\>Страницы/msi", $text, $out);
$tfile = $out[1];
$tfile = explode("<tr>", $tfile);
//print_r($tfile);
//$ft_echo .= count($tfile);
$ft_echo .= "<table width=\"100%\">";
$ft_echo .= "<tr>
<td><b>Имя торрент файла</b></td>
<td width=57><b>С | П</b></td>
<td width=60><b>Размер</b></td>
<td width=50><b>Ссылка</b></td>
</tr>
<tr><td colspan=\"4\"><hr></td></tr>
";
for ( $tfi=1; $tfi<=count($tfile); $tfi++)
{
if (preg_match("/download\.php\?/i", $tfile[$tfi]) and (preg_match("/Мультфильмы/i", $tfile[$tfi]) or preg_match("/Фильмы/i", $tfile[$tfi]) or preg_match("/HD и DVD/i", $tfile[$tfi]) or preg_match("/Аниме/i", $tfile[$tfi]) or preg_match("/Мобильное видео/i", $tfile[$tfi]))) {
// убираем сопли
$tfile[$tfi] = preg_replace("/ \<\/tr\>
\<\/table\>/msi","<!-- /tab -->",$tfile[$tfi]);
//$ft_echo .= "<tr><!-- 39 --><!-- $tfi -->".$tfile[$tfi]."</tr><!-- /39 -->";
$t1_file[$tfi] = preg_replace("/\<td class=\"f\"\>(.*)td class=\"t\">/msi","<td class=\"i\">",$tfile[$tfi]);
$t2_file[$tfi] = preg_replace("/\<td class=\"ps\"\>(.*)\<\/nobr\>
\<\/td\>/msi","<tr>",$t1_file[$tfi]);
$t3_file[$tfi] = preg_replace("/\<em\>/msi","",$t2_file[$tfi]);
$t4_file[$tfi] = preg_replace("/\<\/em\>/msi","",$t3_file[$tfi]);
$t5_file[$tfi] = preg_replace("/\<tr\>/msi","",$t4_file[$tfi]);
$t5_file[$tfi] = preg_replace("/
\<a href=\"\/forum\/viewtopic.php\?t=[0-9]{1,8}\"\>/msi","",$t5_file[$tfi]);
$t5_file[$tfi] = preg_replace("/\<\/a\>
\<\/td\>
\<td class=\"dl\">/msi","</td>
<td class=\"dl\">",$t5_file[$tfi]);
preg_match("/\<a href=\"(.*)\"\>[0-9]/msi", $t5_file[$tfi], $tf_url); // выбираем ссылку
$t6_file[$tfi] = preg_replace("/\<a href=\"\/forum\/download.php\?id=[0-9]{1,8}\">/msi","<td>",$t5_file[$tfi]);
$t7_file[$tfi] = preg_replace("/\<\/a\>/msi","</td><td><a href=http://tfile.ru".$tf_url[1].">.torrent</a></td>",$t6_file[$tfi]);
$ft_echo .= "<tr>".$t7_file[$tfi];
$ft_echo .= "<tr><td colspan=\"7\"><hr></td></tr>";
} // if
}
$ft_echo .= "</table>";
//echo strlen($ft_echo);
if (strlen($ft_echo)<=250) $content .= "<h2 align=\"center\">К сожалению торрент файлы не найдены.</h2>"; else $content .="<h2 align=\"center\">Скачать торрент $runame</h2>".$ft_echo."<br>";
?>
Данный код выкладываем на сервер отдельным файлом 'tfile.php'. В том месте где нам нужно получить блок с торрент ссыками вставляем:
echo $content;
Оставить комментарий
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.


