Вопрос или проблема
Я работаю в коалиции и пытаюсь собрать конкретную информацию о новостях с сайта нашего города:
На сайте есть конкретные для категорий поля, которые можно выбрать, чтобы показать ограниченный диапазон статей. Например, если я хочу посмотреть только статьи, касающиеся района Аламеда, я нажимаю на поле и показываю только небольшое количество статей, связанных с этим районом. Новый URL выглядит так:
https://www.portland.gov/news?f%5B0%5D=neighborhood%3A259
Когда я пытаюсь получить RSS-ленту с URL в WordPress, изменения не отображаются. Я могу только получить RSS-ленту, которая показывает все написанные статьи. Я попробовал использовать RSS.app, чтобы она агрегировалась в зависимости от разных URL, и поток меняется в зависимости от URL, когда я использую этот сервис. Почему разные URL работают с RSS.app, но не работают, когда я напрямую использую разные URL в RSS-блоке в WordPress?
Ответ или решение
Изменение параметров в URL источника не изменяет фактическую RSS-ленту в WordPress
Теория
WordPress, как и любой другой CMS, обрабатывает RSS-ленты исходя из предоставленного источника URL. Важно понимать, что URL RSS-ленты и URL веб-страницы могут обрабатываться по-разному. Когда вы добавляете параметры в URL, в зависимости от сервера, от которого получаете данные, результат может быть непредсказуемым. Именно поэтому изменение параметров в URL источника не всегда может привести к модификации RSS-ленты.
Фактически, для понимания того, почему это происходит, нужно углубиться в структуру и функционал HTTP-запросов и серверного взаимодействия. Многие веб-сайты генерируют их RSS-ленты через отдельный маршрут сервера, который может игнорировать некоторые параметры запроса.
Пример
Рассмотрим ваш конкретный случай с сайтом portland.gov. Когда вы выбираете определенную категорию "Алмеда" и URL преобразуется в https://www.portland.gov/news?f%5B0%5D=neighborhood%3A259
, на уровне интерфейса ресурса эти параметры URL обрабатываются JavaScript-кодом страницы, который динамически изменяет набор отображаемых данных без участия сервера. Таким образом, эти фильтры работают исключительно внутри клиента и не передаются на сервер для генерации соответствующей RSS-ленты. Следовательно, по умолчанию RSS-лента, загружаемая в WordPress, остается "нефильтрованной".
Когда вы используете RSS.app, этот сервис, возможно, имеет более сложный механизм обработки и парсинга страницы, который позволяет ему получить доступ к более детализированным данным с веб-страницы именно так, как они отображаются в браузере с учётом примененных фильтров.
Применение
Если перед вами стоит задача интеграции специфических RSS-лент в ваш WordPress сайт, необходимо использовать более адаптивные и мощные инструменты парсинга. Ниже приведены несколько подходов:
-
Использование сторонних сервисов: Подумайте о применении сторонних сервисов, таких как RSS.app или другие динамические инструменты агрегации контента, которые способны имитировать поведение пользователя на сайте и подстраивать RSS-ленту под желаемые параметры. Эти сервисы часто предоставляют API для интеграции с платформами вроде WordPress.
-
Разработка собственного решения: Вы можете написать кастомный скрипт для генерации RSS-лент, который будет взаимодействовать с целевой страницей на уровне веб-скрепинга. Языки программирования, такие как Python с библиотекой BeautifulSoup, прекрасно подходят для таких задач.
-
Использование плагинов WordPress: Существует несколько плагинов для WordPress, которые предлагают усовершенствованный функционал для работы с RSS-ленами, такие как "WP RSS Aggregator". С их помощью можно настроить обработку и фильтрацию RSS-каналов.
-
Проверка доступных API: Часто городские или муниципальные сайты имеют собственные API, через которые можно получать более подробные и отфильтрованные данные без необходимости обращаться к RSS.
Все вышеуказанные подходы требуют разного уровня технической подготовки, поэтому выбранное решение должно соответствовать вашей квалификации и возможностям реализации.
Итак, чтобы непосредственно интегрировать специфический контент из выбранных категорий вашего целевого веб-ресурса в WordPress, необходимо выйти за рамки стандартного подхода к RSS-фидам и принимать в расчёт дополнительно задействуемые технологии для получения и обработки данных.