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

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

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

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

17.02.10 04:59 kstep

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
16
17

<?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->load(dirname(__FILE__).'/lostfilm.xslt');
$xsltp->importStyleSheet($xsltd);

$html = new DOMDocument();
$html->loadHTMLFile($serial_url);

echo $xsltp->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
27

<?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(@class,'t_row') and starts-with(@id,'row_')]">
                <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>
 


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


$ 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
26
27

<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
1
2
3

127.0.2.4       html2rss.local
 

$ r2e add http://html2rss.local/lostfilm.php?id=51
$ crontab -l
1
2
3
4

# m h  dom mon dow   command
*/12    *   *   *   *   /usr/bin/r2e run > /dev/null 2>&1
 



PROFIT!

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

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



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

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

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

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

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

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

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 156)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3183 из 232 городов)
            Топ пользователей Топ блогов
            welinux.ru
            apple iphone 3gs 16gb

            В хорошем качестве hd видео

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


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

            Online video HD

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

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

            Full HD video online

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

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

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