Граббер RSS
После нескольких дней напряженной работы, нашел немного времени и решил выложить пример граббера RSS лент написанного на PHP. Времени по прежнему нету, каждая минута на вес золота, поэтому расписывать все в глубочайших подробностях к сожалению нет возможности. По этому расскажу коротко, как написать граббер или парсер за 15 минут.
Да кстати, для чего он нужен? Ну в первую очередь предположим для постоянного наполнения своего сайта свежими новостями, с тематических ресурсов. Хотя это довольно таки спорный момент, все таки не уникальный контент карается фильтрами от ПС. Но бытует убеждение, что при размещении обратной ссылки карать за сие деяние ПС не будут.
Итак поехали, собственно сам скрипт:
$url='http://rche.ru/feed'; $xml = xml_parser_create(); //создаёт XML-разборщик xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1); //устанавливает опции XML-разборщика xml_parse_into_struct($xml, file_get_contents($url), $element, $index); //разбирает XML-данные в структуру массива, все передается в массив $index xml_parser_free($xml); //освобождает XML-разборщик // печать новостей из ленты for ($i=0; $i < count($index);$i++){ $title=$element[$index["TITLE"][$i]]["value"]; // получаем заголовок $link=$element[$index["LINK"][$i]]["value"]; // получаем ссылку на новость echo "<a href=\"$link\">$title</center></a>"; } |
Вот и все, простой граббер RSS лент готов. Теперь можно приделать к этому скелету перекодировку из UTF8, кеширование и прочие премудрости которые значительно улучшат этот мини парсер.
П.с. В завершении хочу добавить, что такого рода скрипты, как правило сильно нагружают сервер, по этому если вы пользуетесь хостингом с ограниченным лимитом процессорного времени, то будьте внимательнее. На моей практике были случаи когда хостер (причем крупный и солидным) банил за такой скрипт, от этого я и писал выше про кеширование, дабы хоть как то уменьшить нагрузку на ЦП.
Похожие записи
4 комментария to “Граббер RSS”
Оставить комментарий
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать публичный ключ в RSA? спросил (а) Сергей
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
- Скрипт постраничной навигации (расширенная версия) к записи
- Скрипт постраничной навигации (расширенная версия) к записи
- Письма с сайта не приходят на mail.ru, в чем может быть проблема? к записи
- Подключение сайта к хранилищу на Яндекс Облаке к записи
Archive
- +2022 (9)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (37)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Март 2016 (1)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (42)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (8)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Услуга системного администратора веб-серверов 05.05.2022
- CMS для сайта Маркетплейса 05.05.2022
- 101 команда Linux на все случаи жизни 28.04.2022
- Правда про домашний высокоскоростной интернет 22.04.2022
- RC-Images CMS для публикации и обмена и фотографиями 15.03.2022





в последней строке две ошибки с кавычками и несуществующей переменной $titless
Спасибо. Исправлено. В процессе написания поста немного поторопился))
а как написать граббер цен с другого сайта, хочется сделать сравнение моих цен с ценами конкурентов прямо у себя на сайте…
В рамках данного комментария увы это уже не расписать. Сомневаюсь что для этого подойдет именно граббер RSS, всего скорее тут нужно использовать получение документа по средствам Curl и дальнейший парсинг HTML.