Jak přebírat články přes RSS (a nejen ze Zvědavce)

Vladimír Stwora

3.5.2005 Technická poradna Témata: Technika 701 slov

Toto je technický článek, který asi nikomu, kromě několika webmasterů, nic neřekne. Rozhodl jsem se k sepsání této kuchařky poté, co jsem měl drobnou rozmíšku s jistým serverem, který přebíral články ze Zvědavce tak nějak "načerno". Podotýkám, že mi nevadí, převezme-li jiný server článek / články odsud (ostatně sám to dělám také), jen bych rád o tom věděl. A při přebírání je nutno zachovat jméno autora a odkaz na původní zdroj. Provozujete-li vlastní webové stránky a nechce se vám párat se s nějakými otravnými žádostmi a následným kopírováním toho kterého článku, je pro vás ideální automatické přebírání pouze odkazů na posledních zhruba 20 článků přes RSS/XML.

Můj redakční systém automaticky generuje při každém vložení / opravě článku dva nové RSS soubory ve formátu XML: Ten první ve verzi 0.92, ten druhý ve verzi 1.0. Liší se nejen formátem, ale i obsahem. První soubor odkazuje pouze na hlavní články, druhý odkazuje na hlavní články a na články z rubriky Ve zkratce.

A teď jak zpracovat RSS soubor a převést data v něm uložena do formátu html. Potřebujete tzv. parser RSS. Na internetu lze sehnat několik hotových parserů. Mně se osvědčil parser LastRSS napsaný v PHP Vojtěchem Semeckým a nabízeným v rámci obecně veřejné licence GNU.

Stáhněte si zdrojový kód a rozbalte do adresáře, odkud jej budete volat. V místě, kde se mají objevovat poslední články ze Zvědavce, vložte následující kód:

// include lastRSS
require_once ("lastRSS.php");

// Vytvorit lastRSS objekt
$rss =& new lastRSS;

$rss->cache_dir = '/tmp';	// Jakykoliv adresar na serveru, 
				// ale musi mit pristupova prava 777 
				// (tzn. kazdy do nej muze zapisovat)
$rss->cache_time = 6400; 	// obnovit kazde dve hodiny
$rss->CDATA='content';	 	// Tento parametr je v pripade Zvedavce nutno pouzit
$rss->items_limit=0;		// Zpracuj vsechny polozky

$rssurl='http://www.zvedavec.org/zvedavec_rdf_100.xml';

if ($rs = $rss->get($rssurl)) {
  foreach($rs['items'] as $item) {
    echo "<h1><a href="$item[link]"
	class="rss" target="_blank">".StripSlashes($item['title'])."</a></h1>n";
    if (isset($item['description']))
	echo "<p>".StripSlashes($item['description'])."</p>n";
  }
}
else { echo "Chyba. Soubor $rssurl je nedostupny..."; } 

Oblast můžete ohraničit tagem <div>, popř. umístit do tabulky. Tyhle podrobnosti už nechám na vás.

A samozřejmě, že uvedený postup můžete použít i pro kterýkoliv jiný RSS soubor kterékoliv jiné stránky. Stačí změnit odkaz v poli $rssurl. LastRSS "rozumí" verzím 0.9, 1.0 a 2.0.

RSS je dobrá technologie, ale i fyzické přebírání článků má smysl a nemělo by být opomíjeno. A to hlavně proto, že se zajistí existence důležitých článků v případě, že by Zvědavec zmizel z internetové scény. Takže znovu opakuji, chcete-li převzít kterýkoliv článek, můžete to udělat, jen mi, prosím, dejte vědět, a nezapomeňte uvést autora a odkaz na původní zdroj.

Jak jistě víte, uveřejňuji už více než rok na titulní stránce odkazy na poslední články z Britských listů. Používám k tomu výše popsaný postup. A nedá mi to, abych si u té příležitosti neposteskl nad arogancí a nedostatkem profesionalismu webmastera Britských listů (nebudu jmenovat, je podepsán na BL). Po celou tu dobu, co titulky z BL přebírám, není tento člověk schopen opravit množství syntaktických a konverzních chyb v jejich vlastním RSS souboru. Nejen že jimi dodávaný soubor porušuje pravidla konstrukce RSS (v rámci položky <item> nemá položka <autor> co dělat - a takových nesmyslů je tam více), ale ještě k tomu obsah titulků článků, údajně ve znakové sadě ISO-8859-2, často obsahuje znaky, které v této sadě neexistují. Výsledkem jsou "pušvejci" - nečitelné znaky v jejich textu a zavlečené syntaktické chyby na mé vlastní webové stránce a na každé stránce, která by soubor z BL zobrazovala.

Webmasterovi BL zjevně nějaká ta chyba na jeho vlastních stránkách nevadí (v dnešním vydání obsahuje titulní stránka BL 293 syntaktických chyb a prohřešků), ale jak si může dovolit ignorovat syntaktické chyby v souboru, který nabízí jiným (a který vlastně slouží BL jako reklama), to skutečně nechápu.

Psal jsem webmasterovi BL asi před rokem s kopií panu Čulíkovi a upozorňoval je na nedostatky v jejich RSS, ale neuznali mě za hodna odpovědi. A chyby také do dneška neodstranili.

Známka 1.0 (hodnotilo 1)

Oznámkujte kvalitu článku jako ve škole
(1-výborný, 5-hrozný)

1  2  3  4  5 

Káva pro Zvědavce

44

Být v obraze něco stojí.
Připojte se k ostatním a staňte se
také sponzorem Zvědavce, stačí
částka v hodnotě jedné kávy měsíčně.

Za měsíc leden přispělo 79 čtenářů částkou 13 311 korun, což je 44 % měsíčních nákladů provozu Zvědavce.

Bankovní spojení: 2000368066/2010
Ze Slovenska 2000368066/8330
IBAN: CZ4720100000002000368066
BIC/SWIFT: FIOBCZPPXXX

[PayPal]

Bitcoin:
165eUVffx5CuUNwr12JbqqZi6AtrbN22Y7
Další možnosti platby › Související články ›

Ve zkratce

Dementní Vídeňaci protestují na podporu afrických kobylek15.01.18 21:12 Rakousko 2

Pověsti, že německá vláda tajně letecky šíbruje migranty do Německa, se ukázaly být pravdou14.01.18 21:03 Neurčeno 2

Německý federální dětský televizní kanál: Ode dneška budeme Boha nazývat Alláhem. Všechny děti jsou muslimové14.01.18 20:20 Německo 3

Regensburg: Skupina mladých migrantů napadla dva policisty. Jsou s vážnými zraněními v nemocnici14.01.18 19:17 Německo 0

Wurzen (okres Lipsko): Boj mezi Němci a migranty - dva muži vážně zraněni 14.01.18 18:49 Německo 0

Pirát Michálek zcela vážně tvrdí, že Masaryk řekl: Všechno, co najdete na internetu, nemusí být pravda14.01.18 15:21 Česká republika 1

Times: Tusk obvinil Polsko z tajné práce pro Kreml a vystoupení z EU! 14.01.18 13:29 Polsko 0

Václav Havel: Všichni Češi jsou pokrytečtí vychcánkové a všichni kradou - delegovali svoje zlo na Junka (STB agent).To mě na tom sere!14.01.18 12:41 Česká republika 1

Dva slušňáci připíjejí na pokračující spolupráci 14.01.18 12:09 Česká republika 2

Antifa ubila muže železnou tyčí zato, že měl šle v národních barvách14.01.18 11:27 Španělsko 1

Babiš - slizký had - se již vyvléká z podpory Zemana. Doporučil mu zdůraznit orientaci na Západ, nehovořit ve prospěch Ruska a Číny a vyměnit poradce13.01.18 20:08 Česká republika 2

ODS opět zvolila svým vůdcem bývalého předsedu moravského výboru Panevropské unie, Petra Fialu, a doporučila voličům volit globalistu Drahoše13.01.18 19:54 Česká republika 1

Volby 2018: Miloš Zeman zvítězil s 38,57 % hlasů v prvním kole. Před pěty lety dostal 24,21 % hlasů. Druhému kolu se nevyhneme13.01.18 19:23 Česká republika 8

Počty nakažených spalničkama na Ukrajině rychle narůstají13.01.18 17:24 Ukrajina 2

Feministky pobouřil dopis hvězdné Deneuveové proti kriminalizaci mužů13.01.18 10:20 Francie 0

Štěch vůbec netuší, o čem hlasoval. Autoři petice proti směrnici EU o zbraních napsali Štěchovi a jeho odpověď četli s vytřeštěnýma očima13.01.18 00:58 Česká republika 2

Němečtí soc. dem. (SPD) půjdou opět do Velké koalice s Merkelovou - příliv migrantů do Německa bude pokračovat12.01.18 23:17 Německo 0

Soud s palestinským vrahem v Hamburku. Jeho obhájce šokoval hned na začátku12.01.18 22:36 Německo 0

Německý tisk o českém prezidentovi: Zeman podněcuje strach pomocí spikleneckých teorií11.01.18 22:56 Německo 5

Slavnostní zahájení oslav 100 let od vzniku Československé republiky a 1000 let české státnosti - projev prezidenta Zemana11.01.18 19:56 Česká republika 1

Měnové kurzy

USD
20,76 Kč
Euro
25,44 Kč
Libra
28,61 Kč
Kanadský dolar
16,68 Kč
Australský dolar
16,52 Kč
Švýcarský frank
21,58 Kč
100 japonských jenů
18,73 Kč
Čínský juan
3,23 Kč
Polský zloty
6,09 Kč
100 maď. forintů
8,23 Kč
Ukrajinská hřivna
0,73 Kč
100 rublů
36,77 Kč
1 unce (31,1g) zlata
27 733,45 Kč
1 unce stříbra
356,35 Kč
Bitcoin
231 519,64 Kč

Poslední aktualizace: 17.1.2018 07:33 SEČ

Tuto stránku navštívilo 14 201