• Имеется ссылка к xml-файлу. Доступ к нему предоставляется для IP, на котором расположен сайт (для других IP доступ закрыт).
    Какой способ парсинга наиболее производительный для WordPress? Я так понимаю, что JS использовать нельзя, т.к. доступ по IP и с помощью JS никак нельзя будет получить содержимое файла?
    xml-файл будет считываться при любом обновлении страницы сайта.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • причем тут wordpress?
    парсинг надо делать через php аля https://www.php.net/manual/ru/simplexml.examples-basic.php
    а wordpress нужен, чтобы закэшировать результат, тут вам лучше использовать транзитный кэш. считывать заново при любом обновлении страницы абсолютно не вариант — ваш сайт будет тормозить незнамо как. так что транзитный кэш с результатами на 8-48 часов, вы уже там сами решите, насколько часто информация в xml обновляется и сколько она будет актуальной.

    Данные в том файле обновляются постоянно (лайв-результаты спортивных событий), поэтому транзитный кэш не совсем подходит. Как тогда поступить?

    поэтому транзитный кэш не совсем подходит. Как тогда поступить?

    Не использовать транизитный кэш.

    Целесообразность кэширования можно оценить по количеству запросов к сайту за то время, в которое информация остается неизменной и актуальной.

    Не использовать транизитный кэш.

    Тогда на сайт будет колоссальная нагрузка. В JS нет способа как-то эмулировать IP-адрес, чтобы получить доступ к файлу?

    В JS нет способа как-то эмулировать IP-адрес

    Нет.

    Можно не парсить xml, а проксировать. Нагрузка на сервер, конечно, будет, но несравненно меньше, чем при парсинге.

    для сайтов, которые продают такой доступ очень странно не иметь js api.
    xml файл с доступом по ip — это очень странно.

    вопрос даже не в нагрузке, а в том, что ваш сайт будет тормозить. быстро соединиться с чужим сервером, скачать xml, обработать его — это временные задержки до секунды в лучшем случае.

    xml файл с доступом по ip — это очень странно

    Полностью согласен.

    быстро соединиться с чужим сервером, скачать xml, обработать его — это временные задержки до секунды в лучшем случае.

    Да, задержки бывают и по 2-3 секунды.

    Спасибо вам за разъяснения. Для себя делаю вывод, что лучше найти сервис с доступом js api и не ломать голову.
    Тему закрываю.

    Модератор Yui

    (@fierevere)

    ゆい

    вам уже отчасти сказали про это.
    Лучше всего по системному cron скачивать файл, парсить его вне WordPress, любыми средствами, лучше всего, если использовать программу на C/C++, нежели языках высокого уровня, но сойдет в принципе любой парсер, с которым вы сможете совладать, Perl, Python…

    Промежуточный результат можно сохранять для WP например в отдельной таблице MySQL, а лучше в Redis (или ином Key-Value storage), в зависимости от того, какое представление результатов вы там парсите, и как вам нужно делать выборку и нужно ли.

    В любом случае вам потребуется проделать много работы или заказать её,
    т.к. готового для WP наверняка «под ключ» для вашей задачи ничего нет.

    а без посторонних программ нельзя?
    у mysql вроде бы есть LOAD XML, встроенный крон — Event Scheduler.

    конечно, для live-результатов задержка и 5 сек много, но все же лучше чем ничего.

    я просто не в курсе работы LOAD XML в mysql, мне интересно — это по ресурсоемкости вообще имеет право на жизнь или нет?

    Модератор Yui

    (@fierevere)

    ゆい

    https://dev.mysql.com/doc/refman/5.5/en/load-xml.html

    парсер на C/C++, libxml или expat, поэтому с производительностью у него быть никаких проблем не должно, работает в отдельном потоке, блокирует таблицу до завершения процесса
    Это хороший вариант.

    мне интересно — это по ресурсоемкости вообще имеет право на жизнь или нет?

    mysql load xml на порядок веселее, чем php simplexml и построчное внесение в БД. Проверено на гигабайтных файлах. simplexml вообще тормоз и обжора 🙂

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Парсинг XML» закрыта для новых ответов.