fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Технології

Як створити RSS агрегатор самостійно?

Ви ніколи не замислювалися, як одні сайти відображають зведені дані з інших сайтів, запитує Кент Ельчук на сторінках Лінукс Формат? Цей трюк можна виконати кількома способами, в тому числі за рахунок привілеїв на доступ до баз даних джерел, web-скрейпинга або вживання стрічок RSS —так і поєднавши якісь з них.
У нашому уроці ми розглянемо, як збирати і комбінувати дані з допомогою стрічок RSS. RSS, що розшифровується як Rich Site Summary (а пізніше — Really Simple Summary), існує вже давно — і бере свій початок з часу роботи Раманатхана Ст. Гухи [Ramanatlian V. Guha] в Apple computer’s Advanced Technology Group в середині 1990-х — і ви, ймовірно, використовуєте їх кожен день для відображення новинних стрічок серед іншої корисної інформації.
RSS — це, як правило, XML-файли, які містять дані всередині структурних тегів; припустимо, якщо ви зайдете в Craigslist і перегляньте регулярні записи, то побачите звичайний список пунктів Це вихідний код HTML. Але в Craigslist RSS Feed ті ж елементи будуть відображатися у вигляді HTML, а у вигляді XML-файлу, який зберігає кожен список всередині батьківського тега «елемент [item]». Кожен тег елемента містить інформацію про записи, в тому числі назву, дату і опис.
Захоплення та об’єднання RSS-стрічок за допомогою простого скрипта PHP — це швидкий і легкий спосіб отримати бажані дані і вивести на екран потрібні вам результати. Джерелами інформації для RSS-стрічок служать багато великі рекламні та аукціонні сайти (такі як eBay, eBay Classified, Monster, Craigslist і т. д.) — і багато інших, в тому числі сайти працевлаштування (наприклад, Career?uilder і Indeed дозволяють отримати XML-стрічки, які також можна синтаксично проаналізувати).
У багатьох випадках для доступу до стрічок RSS досить звернутися до певного URL, а іноді необхідний API з вказаним ключем видавця. Одним з прикладів сайтів, які вимагають ключ видавця для отримання API, є популярний сайт пошуку роботи, lndeed.com.
Оскільки нам була потрібна тема для прикладу, ми розповімо, як групувати RSS з різних джерел, згаданих вище. Наші приклади покажуть, як звузити коло пошуку роботи за місцем розташування і посади, або ж запросто зробити собі особистий RSS і XML-агрегатор для відображення елементів угоди, яку ви хочете здійснити через eBay, Craigslist і т. д.
Крім того, ви зможете зробити так, щоб результат завантажувався у вашому браузері на локальному web-cepaepe, наприклад, LAMP в дистрибутиві Ubuntu. Установка LAMP займе всього пару хвилин, але ми також розповімо, як це робиться. Крім відображення результатів в web-браузері, посилання на вихідне повідомлення, і ви зможете повернутися туди, щоб виконати будь-які дії, наприклад, дізнатися про вакансії і т. д.
З чого почати створювати RSS агрегатор
Отже, закочуємо рукави і почнемо розбиратися, як бути в курсі всього. Перше, що вам потрібно для агрегації та аналізу RSS-стрічок — це робочий web-сервер з додатковими пакетами, такими як РНР. Оскільки справа це хвилинне, інструкції по його установці ми наведемо потім. Ті, хто вже думають: «О Боже, знову установка web-cepeepa», можуть це пропустити.
Для установки сервера Apache виконайте наступний код:
sudo apt-get update
sudo apt-get install apache2
Потім встановіть пакунки PHP:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
На нашому уроці для аналізу стрічок RSS ми скачаємо готовий скрипт, а також наведемо методику, як зробити це вручну. У ролі парсера виступить Magpie RSS. Примітка: він розташований на Sourceforge, але існують і альтернативи без використання цього сайту, наприклад, Simple Pie.
Скачавши Magpie, збережіть його в папці www або html: у нових версіях Ubuntu, наприклад, мережеві папки Apache знаходяться в /var/www/html, у більш старих, такі, як Ubuntu 12.04, кореневої мережної папки є /var/www.
Незалежно від кореневої папки, тепер вам потрібно створити ще одну, rss. Туди ви збережете витягнуту папку Magpie, з ім’ям magpierss-0.72. Для простоти перейменуйте її правим клацанням миші в magpie, На додаток до папки magpie, у вас є два файла: index.php і customs.php. Файл index.php потрібен для відображення вмісту і щоб відкрити його в браузері і customs. A php включає функції прийому URL і збору даних з джерел RSS.
Примітка: більшість стрічок у зразку кодування обробляються з допомогою Magpie, за винятком Indeed і Careerbuilder. Їх аналіз здійснюється за допомогою вбудованого класу PHP — DQMDocument().
Код, використовуваний на нашому уроці, викладений на LXFDVD і на сайт, тобто відредагувати вам доведеться тільки рядки, що стосуються фактичних адрес, які знаходяться в районі рядка 3 у файлі index.php Це ваш вихідний список URL-адрес для RSS-стрічок, які ви хочете об’єднати. Тим не менш, можливо, ви також захочете щось змінити в призначених для користувача настройках аналізатора, в районі рядка у файлі 108 customs.php. В даний час користувача URL-адреси, налаштовані на Indeed і Careerbuilder,
Вам потрібно розкоментувати адреси для CareerBuilder і Indeed, оскільки обидва вони вимагають ключа видавця. Якщо ви зареєструєтесь і отримаєте ключі розробника, все, що вам потрібно зробити, це замінити YOUR_KEY_HERE на відповідні ключі. Indeed Publisher Program доступна на www.indeed.com/publisher а інформацію про те, як зібрати результати пошуку для сайту CareerBuilder, можна знайти на htto://bit.lv/CareerBuiiderAPI.
Тепер, розібравшись з основами, саме час пройтися по коду і пояснити, як це працює. Для початку відкрийте файл Index, php, web-браузері. URL-адреса на локальному комп’ютері буде http://localhost/rss або http://localliost/rss/index.php. У верхній частині файлу, створюється масив з ім’ям $urls. містить стрічки, які ви хочете агрегувати.
Отримати RSS-стрічки з різних джерел досить просто, але в кожного постачальника буде свій спосіб їх пошуку. Безумовно, якісь знайти буде легше, якісь важче. Давайте почнемо з Craigslist. Якщо перейти на craioslist.co.uk і подивитися вакансії в розділі кваліфікованої праці/ремесла в Лондоні, ви побачите безліч записів. По натисненню на кнопку RSS в правому нижньому кутку екрану ви отримаєте цю стрічку, чи можна спочатку звузити область пошуку, а потім додати її. У верхній лівій частині екрану потрібно перевірити вікно «контракт«. Потім натисніть на жовтий значок RSS в правому нижньому кутку, і ви побачите сторінку стрічки. URL-адресу в браузері є прикладом того, що ви могли б додати в ваші URL-адреси стрічок у верхній частині сторінки index.php,
Кілька джерел для RSS
Інший приклад буде присвячений збору RSS-стрічок з eBay, і тут все не настільки очевидно. Але ви можете звузити пошук до того, що вам потрібно, додавши &_rss=1 в кінці URL у веб-браузері, щоб побачити нову сторінку з потрібною стрічки.
Наступні два рядки вказують на файл, який Magpie буде використовувати для аналізу і файл customs.php, який використовує користувальницькі функції та перевірки. Далі трохи складніше. В районі рядка 108 в customs.php ви побачите функцію, яка перевіряє, чи існує масив $urls. Отримавши підтвердження; вона проходить через цикл по кожному елементу для кожного URL.
Якщо перший набір умов виконано, перевіряється, чи містить частину рядка URL текст ‘indeed’ або ‘careerbuilder’. Вбудована функція PHP strpos() визначає, чи є певне слово в URL. Якщо ‘indeed1 або ‘careerbuilder’ URL немає, запускається функція custom. url($urls) з відповідним URL. Ця функція знаходиться у верхній частині customs.php.
Надаємо стиль стрічок та посиланнях RSS
Оскільки вивід відображається у звичайній таблиці, поки що він не виглядає не особливо стильно, але легко додати плагін, який зробить його крутіше.
Набравши в web-пошуку «кращі швидкі плагіни для таблиць завантаження», ви побачите, що є багато варіантів, так само як і підручників для додавання стилів, але ми швидко пояснимо, як зробити це з допомогою плагіна під назвою Datatables, який можна завантажити з datatables.net/downEQad/ download.
Крім того, що Datatables представляє таблицю зміни розміру для багатьох пристроїв і має функцію пошуку, можна ще й вибрати, скільки записів ви хочете бачити на сторінці.
Хоча на LXFDVD ми розмістили файл з ім’ям mciex_slyled.php я скоренько поясню, як легко додати цей плагін. Для початку зайдіть в файл і змініть тип документа на html 5, Так, самий перший тег може бути замінений . Після цього додайте заголовну частину з посиланнями на необхідні файли.
Верхня частина даних представлена нижче:
$(document).ready(function () {
$(‘#example’).DataTable();
} );
Зверніть увагу, що ви можете використовувати файли, завантажені з сайту Datatables, або посилання з CDN (Content Delivery Network).
Залишилося тільки додати два атрибута в тег таблиці:
id=”exampler” class=”display”
Тепер, завантаживши сторінку в веб-браузері, ви побачите, що все виглядає набагато елегантніше.
Ті, у кого більше досвіду кодування, можуть піти трохи далі — наприклад, використовувати допоміжні медіа-запити і класи, щоб змінити розмір тексту й видаляти стовпці, при зміні ширини використовуваного екрану.