Запит до іншого сервера або сайту за допомогою php

Вітаю Вас, шановні Новомосковсктелі блогу webcodius.ru. В процесі розробки різних веб-сервісів періодично з'являється необхідність збору різноманітної інформації з інших сайтів. Тобто потрібно проводити парсинг сайтів. Особливість парсинга - це швидкий і автоматизований збір даних і контенту зі сторінок сайту. Наприклад, часто потрібно отримати каталог товарів, включаючи картинки, з різних інтернет-магазинів в автоматичному режимі. В цьому випадку і стане в нагоді механізм парсинга сайтів.

В основному в php застосовується два способи отримання контенту зі сторінок сайту.

1. get - запит за допомогою функції file_get_contents ().

Функція дозволяє отримати вміст файлу у вигляді одного рядка і має наступний синтаксис:

string file_get_contents (string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]])
де filename - шлях до файлу.

У разі невдачі функція повертає FALSE.

2. Використання бібліотеки CURL.

У разі використання CURL код стає більш громіздким, але з'являється більше різних можливостей, так як бібліотека має безліч налаштувань і дозволяє виконувати get і post запити.

Отримання вмісту сторінки складається з чотирьох дій:

  • ініціалізація сеансу за допомогою функції curl_init ();
  • установка потрібних параметрів за допомогою функції curl_setopt ();
  • виконання запиту функцією curl_exec ();
  • закриття сеансу функцією curl_close ().

Якщо необхідно виконати POST запит до віддаленого сайту. то необхідно опцію CURLOPT_POST встановити в true. а в опцію CURLOPT_POSTFIELDS помістити передані дані:

В результаті обох способів в змінну $ result потрапляє контент заданої сторінки у вигляді рядка html коду. Після цього можна переходити безпосередньо до парсингу сторінки, тобто отримання від вмісту рядка потрібних даних. Наприклад отримати всі картинки зі сторінки або витягти текстовий контент.

Для парсинга можна скористатися регулярними виразами, але краще використовувати вбудовану бібліотеку DOMDocument або бібліотеку SimpleHTMLDOM.

На цьому все, до нових зустрічей!

Схожі статті