Видео ролики бесплатно онлайн

Смотреть вк видео

Официальный сайт pharma-24 24/7/365

Смотреть видео бесплатно

kstep 17.02.2010 04:59

Tips & tricksRSS-фид для Лостфильма

К сожалению сабжевый портал так и не обзавёлся своим рсс-фидом, но получать обновления о любимых сериалах ох как хочется!
Задачу решил с помощью PHP+XSLT.


UPD. Как подсказали в комментах, у них конечно же есть рсс по ссылке http://lostfilm.tv/rssdd.xml, но это не то, что я хотел: там все обновления сериалов скопом, а мне это совершенно неинтересно, мне интересен конкретный набор сериалов. Так что этот фид для меня не решение, и всё равно буду использовать то, что описано ниже.

Собственно основная часть решения именно в XSLT, PHP только для связки HTML-странички с XSLT-стайлшитом.
С тем же успехом можно было использовать связку xsltproc+wget.
PHP был выбран только потому, что скрипт на нём было очень просто повесить на локальный апач и подвязать получение фидов с него.

$ cat lostfilm.php
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
error_reporting(0);

$serial_id = intval($_GET<'id'>);
$serial_url = "http://lostfilm.tv/browse.php?cat={$serial_id}";

$xsltp = new XSLTProcessor();
$xsltd = new DOMDocument();
$xsltd-&gt;load(dirname(__FILE__).'/lostfilm.xslt');
$xsltp-&gt;importStyleSheet($xsltd);

$html = new DOMDocument();
$html-&gt;loadHTMLFile($serial_url);

echo $xsltp-&gt;transformToXML($html);



$ cat lostfilm.xslt
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" encoding="utf-8" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title><xsl:value-of select="/html/head/title" /></title>
<link>http://lostfilm.tv/</link>
<description><xsl:value-of select="/html/head/meta<@name='description'>/@content" /></description>
<language>ru</language>

<xsl:for-each select="/html/body/div/div/div<@class='mid'>//div<contains>">
<item>
<title>(<xsl:value-of select="normalize-space(./preceding-sibling::div<1>//td<@class='t_episode_num'>/text())" />) <xsl:value-of select="./preceding-sibling::div<1>//td<@class='t_episode_title'>" /></title>
<guid isPermaLink="true">http://lostfilm.tv<xsl:value-of select=".//a<@class='a_details'>/@href" /></guid>
<comments>http://lostfilm.tv<xsl:value-of select="./preceding-sibling::div<1>//a<@class='a_discuss'>/@href" /></comments>
<link>http://lostfilm.tv<xsl:value-of select=".//a<@class='a_download'>/@href" /></link>
<description><xsl:value-of select=".//td<@class='t_cell'>" /></description>
</item>
</xsl:for-each>
</channel>
</rss>
</xsl:template>
</xsl:stylesheet>
</contains>



Потом подвязка на виртуальный хост апача:


$ cat /etc/apache2/sites-available/html2rss
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<VirtualHost html2rss.local:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/kstep/www/html2rss
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/kstep/www/html2rss>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /home/kstep/log/html2rss/httpd-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
RewriteLogLevel 2

CustomLog /home/kstep/log/html2rss/httpd-access.log combined
RewriteLog /home/kstep/log/html2rss/httpd-rewrite.log
</VirtualHost>


$ sudo a2ensite html2rss
$ sudo service apache2 restart
$ cat /etc/hosts

127.0.2.4 html2rss.local

$ r2e add http://html2rss.local/lostfilm.php?id=51
$ crontab -l
1
2
# m h  dom mon dow   command
*/12 * * * * /usr/bin/r2e run > /dev/null 2>&1




PROFIT!

Оповещения о «Докторе Хаусе» раз в 12 минут идут в локальный ящик по RSS.

З.Ы. Предупреждаю сразу: я не XSLT-гуру, это один из немногих стайлшитов, которые я набросал на коленке. Очень может быть, что можно было сделать лучше и правильнее, но это решение работает и мне этого хватает =)


Тэги: apache lostfilm php XSLT скрипты
+ 3 -
Похожие Поделиться

digiwhite 17.02.2010 06:31 #
+ 1 -
Локальный апач.... только для RSS. Это случайно не "стрельба из пушки по воробьям"? Может можно было обойтись только одним php интерпретатором?

ЗЫ: закрывающий тэг ?php> отсутствует. Или какой он там должен быть ( ?> ).
benvolio 17.02.2010 11:16 #
+ 0 -
закрывающий тег необязателен в данном случае
kstep 17.02.2010 19:10 #
+ 0 -
Да, необязателен. И даже вреден в случае полностью пхп-файла без html-вставок: сколько времени был потрачено на отладку многомодульных пхп-приложений только для того, чтобы выяснить, что причиной бага были лишние пробельные символы после последнего закрывающего элемента «?>» в каком-нибудь инклуде...
kstep 17.02.2010 19:00 #
+ 0 -
Локальный апач нужен и для многих других целей, т.к. сам я зарабатываю на жизнь веб-программированием. Так что почему бы заодно на него и рсски личные не повесить?
digiwhite 17.02.2010 06:32 #
+ 0 -
Да, а вот использование xslt лично для меня интересно :).
Sergey001 17.02.2010 06:32 #
+ 6 -
я подписан вот на эту ленту http://lostfilm.tv/rssdd.xml
это не то чего Вы хотели?
kstep 17.02.2010 19:04 #
+ 0 -
Нет, это совершенно не то, что я хочу. Мне совершенно неинтересен общий поток новостей обо всех сериалах подряд, мне нужны конкретные сериалы.
ArtemZ 17.02.2010 07:59 #
+ 2 -
К сожалению сабжевый портал так и не обзавёлся своим рсс-фидом

Какие вещества вы употребляли? всё там есть
kstep 17.02.2010 19:03 #
+ 0 -
Сколько ни искал, не нашёл. Искал по тегу в заголовке, в соотвествии со стандартами. А сейчас, когда сказали, только заметил отдельную линку в на рсс в шапке. Таки да есть, но хорошо бы они нормально стандарты тогда поддержали.
kstep 17.02.2010 19:11 #
+ 0 -
Тегу < link >. Парсер его сожрал.
konkere 17.02.2010 08:23 #
+ 2 -
Не нашёл РСС — ещё не означает отсутствие.
kstep 17.02.2010 19:06 #
+ 0 -
Тогда сформулирую иначе: мне не нравится тот рсс, который у них есть. Поэтому я сделал свой с блекджеком и прочим.
Username 17.02.2010 09:08 #
+ 1 -
че-то все вбросили коричневого на ветродувы я смотрю. Тем не менее, чувак более-менее знает XML/XSLT, уже за это плюс.

/me всплакнул над ушедшей молодостью и техрайтерством на docbook'е. Именно тогда я впервые и увидел этот ваш линупс :3
IamCrazy 17.02.2010 09:15 #
+ 1 -
Еще дополнительно есть http://kinobaza.tv/
правда там многое еще в разработке
HTaeD 17.02.2010 10:30 #
+ 2 -
пользуюсь MyShows. Доволен, как слон )
HTaeD 17.02.2010 10:32 #
+ 1 -
Ссылка мёртвая вышла (
Вот живая.
IamCrazy 17.02.2010 11:57 #
+ 1 -
Тоже пользуюсь, но там же вроде еще нет уведомления о том, что вышла серия на торрентс.ру :)
HTaeD 17.02.2010 10:34 #
+ 1 -
Автору плюс за проделанную работу. Но rss не пользую.
booley 17.02.2010 11:38 #
+ 0 -
Раньше я предлагал решение для автоматического скачивания новых серий с лостфильма :)
wiz 17.02.2010 13:06 #
+ 1 -
btw, гугль может делать фиды для любых сайтов.

http://googlereader.blogspot.com/2010/01/follow-changes-to-any-website.html
mutantcornholio 17.02.2010 17:59 #
+ 0 -
На практике, нет. Но многие. А вот страничку раздачи на torrents.ru не делает =\
stogerc 17.02.2010 17:19 #
+ 1 -
Ещё есть очень приятный сервис http://feed43.com/ можно в 5 минут сделать rss с любого сайта.
mutantcornholio 17.02.2010 18:17 #
+ 0 -
А вот он - делает! Спасибо огромное)
ZogG 17.02.2010 19:13 #
+ 0 -
я бы питон скрипт бы сделал с beautifulsoup (хоть бобру не нравится это либа(он писал бота для канала и поменял мой код с этой либой на свой(парсили данные о юзере с сайта)). а потом это скрипт бы открывал файл на скачку.
ZogG 17.02.2010 19:15 #
+ 0 -
кстати, что значит каждые 12 минут? не проще сделать только в определеные дни(он раз в неделю выходит + пару дней на перевод)., да и вообще не тру качать с переводом, даже если он хороший, лучше сабы если тяжело, но хоть англиский подучите, да и часто интонация актеров важна.
да и вообще это пиратство =)
kstep 17.02.2010 19:40 #
+ 0 -
Английский я и так знаю. А напрягаться вечером не хочется. Тем более что того же Хауса смотрим вместе с женой, а тут уж совсем не хочется напрягать мозг переводом. А каждые 12 минут потому, у меня в рсс-фидах лежит далеко не только лостфильм...
aiva 18.02.2010 08:49 #
+ 0 -
На хабре недавно была заметка о том, как автоматически скачивать серии с помощью flexget, пример приведен как раз для лостфильма. Настроить можно на выкачивание только нужных сериалов.
kstep 18.02.2010 11:00 #
+ 0 -
Я даже догадываюсь, как это делалось. К сожалению, не всё так просто. Мой провайдер имеет свои особенности, в связи с чем большие файлы дешевле выкачивать через их хитрый сайт-сервис (примерно по баксу за гиг), а общаться с ним надо через вебинтерфейс. Впрочем для этого были написаны отдельные скрипты, но ими пока делиться не буду, т.к. они вряд ли кому интересны.

P.S. если кто из Минска и ему интересны скрипты для iget.by, то заказывайте, выложу пару скриптов для работы с ним из консоли.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн