Как получить xml файл с сайта
Перейти к содержимому

Как получить xml файл с сайта

  • автор:

Кто нибудь понял как получить xml файл с нужного сайта?

Хорошо рассказано как парсить с xml файла, но не слова где его взять. Просмотрел урок про то как записывать файлы и на тех простых примерах из урока все понятно, но с точки зрения практичности признаюсь, что не фига не понял. Если кто то понял как получить xml файл с нужного вам сайта, поделитесь опытом. Плиз! Очень надо. Спасибо заранее!

Похожие вопросы

  • Как вставить все поля из xml файла с помощью insert в mysql?
  • Как добавить автообновляемый xml-каталог?
  • php урок 62
  • Как решить проблему с ошибкой call to a member function query() on null?
  • Не выводиться в браузер $xml что делать?
  • Вопрос к уроку Работа с XML. Запишем данные из XML в базу.

Один ответ

  • Все вопросы
  • Старые
  • Голоса

Не все сайты отдают XML. Некоторые сайты предоставляют официальный API и позволяют делать запросы к их сайту, а на выходе получать XML или JSON.

Например, VK отдает данные в XML или JSON: https://vk.com/dev/first_guide

Гуглится обычно название сервиса, например Facebook API.

К сайтам, которые не предоставляют API, пишут грабберы используя разные библиотеки, например PHP Simple HTML DOM Parser. т.е. с помощью этой библиотеки парсят HTML данные на сайте, затем сохраняют данные в удобном виде в базу или сразу отдают данные в виде XML/JSON.

Работа с XML в PHP

Зачем нужен XML при парсинге? Иногда бывает так, что сайт, который вам нужно спарсить, имеет API, с помощью которого можно получить желаемое, особо не напрягаясь. Поэтому сразу совет — перед тем, как парсить сайт, проверьте, нету ли у него API.

Что такое API? Это набор функций, с помощью которых вы можете слать запрос этому сайту и получать нужный ответ. Вот этот ответ чаще всего приходит в формате XML. Поэтому давайте приступим к его изучению.

Работа с XML в PHP

Пусть у вас есть XML. Он может быть в строке, либо хранится в файле или отдаваться по запросу к определенному URL.

Пусть XML хранится в строке. В этом случае из этой строки нужно создать объект с помощью new SimpleXMLElement:

Сейчас у нас в переменной $xml хранится объект с разобранным XML. Обращаясь к свойствам этого объекта можно получать доступ с содержимому тегов XML. Как именно — разберем чуть ниже.

Если же XML хранится в файле или отдается по обращению к URL (что чаще всего и бывает), то следует использовать функцию simplexml_load_file, которая делает тот же объект $xml:

Приемы работы

В примерах ниже наш XML хранится в файле или по URL.

Пусть дан следующий XML:

Давайте получим имя, возраст и зарплату работника:

Как вы видите, у объекта $xml есть свойства, соответствующие тегам.

Вы может обратили внимание, что тег <worker> нигде не фигурирует при обращении. Это потому, что он корневой тег. Можно переименовать его, например, на <root> — и ничего не поменяется:

Корневой тег в XML может быть только один, так же, как и тег <html> в обычном HTML.

Давайте чуть модифицируем наш XML:

В этом случае у нас получится цепочка обращений:

Работа с атрибутами

Пусть некоторые данные хранятся в атрибутах:

Теги с дефисами

В XML разрешены теги (и атрибуты) с дефисом. В этом случае обращение к таким тегам происходит так:

Перебор циклом

Пусть теперь у нас не один работник, а несколько. В этом случае мы можем перебрать наш объект с помощью цикла foreach:

Из объекта в нормальный массив

Если вам неудобно работать с объектом, вы можете преобразовать его в нормальный массив PHP с помощью следующего хитрого приема:

Больше информации

Парсинг на основе sitemap.xml

Зачастую на сайте есть файл sitemap.xml. В этом файле хранятся ссылки на все страницы сайта для удобства индексации их поисковыми системами (индексация — это по сути и есть парсинг сайта яндексом и гуглом).

В общем-то нас мало должно волновать, зачем нужен этот файл, главное, что если он есть — можно не лазить по страницам сайта какими-либо хитрыми методами, а просто воспользоваться этим файлом.

Как проверить наличие этого файла: пусть мы парсим сайт site.ru, тогда обратитесь в браузере к site.ru/sitemap.xml — если что-то увидите, значит он там есть, а если не увидите — то увы.

Если sitemap есть — то в нем содежатся ссылки на все страницы сайта в формате XML. Спокойно забираете этот XML, парсите его, отделяете ссылки на нужные вам страницы любым удобным вам способом (например, анализом URL, который был описан в методе паука).

В итоге вы получаете список ссылок для парсинга, остается только зайти на них и спарсить нужным вам контент.

Как посмотеть XML файл заказов Битрикс?

Иногда, для отлаживания процессов обмена между сайтом и , необходимо получить пример файла orders.xml который 1С-ка забирает в момент обмена заказами.

Основная проблема в том. что файла orders.xml в фиде физического файла на стороне сайта не существует и нигде не формируется. Файл «создается» самой 1C в момент запроса к сайту и проверки заказов доступных к обмену и актуализации

Где найти orders.xml в 1С-битрикс?

Для получения файла с заказами в том же виде, в котором его увидит 1Ска достаточно авторизоваться пользователем (группе которого доступны операции обмена с 1С ) и перейти на страницу:

После загрузки страницы браузером вы увидите точно то же, что и 1С-ка в момент запроса файла заказов со стороны сайта.

Пример файла orders.xml формируемого Битриксом

Возможные ошибки

Если перейдя по ссылке вместо xml структуры в окне браузера вы видите ошибку:

Это значит, что обмен с сайтом проходит по так называемой «новой схеме» и вам нужно «вернуть» Битрикс в классическое состояние.

Для этого откройте админ-панель и перейдите в раздел Командная PHP-строка (Рабочий стол > Настройки > Инструменты > Командная PHP-строка или доступна по ссылке /bitrix/admin/php_command_line.php?lang=ru) и выполнить код

После окончания операции, снова перейдите по ссылке и ошибка должна исчезнуть. Ссылка будет работать до момента следующего обмена между сайтом и 1С, после чего операцию придется повторить в случае необходимости.

Чем можно скачать XML-файл с сайта?

Да там нельзя «Сохранить как»
В частности надо скачать отсюда:
http://www.sap.com/cis/partners/BO/index.epx
следующие демонстрации:
# SAP BusinessObjects Planning and Consolidation: Streamlined Planning, Budgeting, Forecasting, and Reporting
# SAP BusinessObjects Planning and Consolidation: Enabling a Fast, Accurate Close
Прямые ссылки:
http://www.sap.com/demos/demplayv2/demoPlayMaster.html?demos.
http://www.sap.com/demos/demplayv2/demoPlayMaster.html?demos.

ты уверен что тебе xml нужен?
чото мне кажется что тебе оттуда флеш видео нада а не xml

по-моему все прозрачно
http://www.sap.com/demos/demplayv2/demoPlayMaster.html?demos/BPC_Overview_US/BPC_Overview_US_config.xml
хтмл-страничке передается имя xml-файла
значит, получаем из этой строки абсолютное имя файла, попутно обращая внимание на отсутствие слеша перед именем и радуемся
получится, соответственно:
http://www.sap.com/demos/demplayv2/demos/BPC_Overview_US/BPC.

догадываюсь примерно о чем проблема.
попробуй другим браузером

если пользуешься Firefox, то есть плагин download helper — он умеет флешки забирать с сайта
У оперы из кеша можно вытащить

не, не получилось забрать флеш этим плагином

Хм. что-то слишком рутинно
я решил тупо записать видео с сайта, программой uv-screen-camera

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *