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.
Полный текст кода смотрите ниже:
Код:
$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;
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
Источник: http://feedproxy.google.com/~r/codenet/read/~3/_v2du4DbgMI/
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Неудача — это не единичное внезапное событие. Ваш провал не возникает внезапно. Напротив, неудача появляется, когда вы совершаете одни и те же ошибки изо дня в день. Джим Рон |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.