Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11855
Последний выпуск: 19.06.2015

Php парсер ссылок на торрент

Автор : Акшонин Виталий
E-Mail: akshonin-собака-майл-ру
16 ноября 2011 года

Эта небольшая статья будет полезна вебмастерам, которые на своих интернет ресурсах предлагают фильмы, музыку, игры, софт или другой полезный контент который часто можно найти в торрент раздачах.

Обычно вебмастера делая новость для очередного медиа файла ставят ссылку на скачивание этого файла с популярных файлообмеников  - летитбит, депозит и тому подобные. Но как мы все знаем ссылки эти живут пока ими пользуются, и если этой ссылкой никто не пользовался она через месяц умирает, и соответственно посетители сайта увидев надпись «Запрашиваемый файл не найден» закроют страницу файлообменники и страницу вашего сайта.

Чтобы клиент (посетитель) остался довольным вашим ресурсом необходимо следить за живучестью ссылок или периодически обновлять ссылки на дееспособные. Работа эта очень кропотливая и нудная, но её вполне можно автоматизировать. Пусть, как говорят, работают механизмы.

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

Полный php код приведен ниже, а сейчас разберем механизм работы парсера.

Запрос к торрнет трекеру выглядит примерно так:

Код:
http://tfile.ru/forum/ssearch.php?q=__ИМЯ__&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];

Нам необходимо отсеять ненужные ссылки и ненужный текст из получаной таблицы. Опишу кратко проделанные действия:

  • разделем текст на строки через <tr> и каждую строку через цикл (for) обрабатываем шаблонно;
  • для моего сайта я оставил только строки содержащие текст: мультфильм, аниме, фильм;
  • произвел прочие преобразования удалив ненужные теги и часть ненужного текста.

Результат получился следующим:

 

На моём сайте теперь всегда стоят живые ссылки с торрент трекера. Пример страницы на данный момент: http://kharitoshka.ru/video.php?id=20.

Полный текст кода смотрите ниже:

 

Код:
<?php

$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'. В том месте где нам нужно получить блок с торрент ссыками вставляем:

Код:
include 'tfile.php';
echo $content;

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
29
16 января
Виталий Иванов
0 / / 16.01.2017
Мне нравитсяМне не нравится
7 февраля 2017, 22:11:45
Скачать сейчас можно всё фильмы торрент http://n-torrents.ru/ супер ресурсе который в топ 20 России, огромные базы всего море информации и всё бесплатно и без регистрации
2.
34K
05 февраля 2008 года
IvanSCM
3 / / 05.02.2008
Мне нравитсяМне не нравится
11 января 2013, 10:02:45
Я бы результаты запросов кешировал. Хотя бы в файл.
3.
83K
13 июня 2012 года
24list
0 / / 13.06.2012
Мне нравитсяМне не нравится
13 июня 2012, 10:44:32
Администраторы рано или поздно обнаруживают постоянные подключения с одного и того же IP.
Надо использовать либо прокси
либо сразу записывать в БД

4.
259
26 ноября 2006 года
dead_star
392 / / 26.11.2006
+2 / -1
Мне нравитсяМне не нравится
24 ноября 2011, 17:41:22
и конечно же никакого ооп и мвк
4.1.
4
01 октября 2002 года
mike
3.7K / / 01.10.2002
+5 / -1
Мне нравитсяМне не нравится
24 ноября 2011, 18:13:31
А зачем? Только потому что модно? В такой простой задаче это не нужно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог