Pull to refresh

Простой граббинг из скрипта. PHP-cURL для начинающих

Эта статья для начинающих PHP-программистов, которые хотят брать какую-то информацию с других сайтов посредством/из своих скриптов.

Сначала определим массив HTTP-заголовков, которые мы будем передавать серверу. Экспериментальным путем мной получены заголовки, которые на стороне сервера выглядят почти так-же, как заголовки, которые передает Mozilla FireFox 3.6, запущенный из под Windows XP. Проблема в том, что cURL добавляет чуть-чуть что-то своего, но это почти незаметно.

Вот массив с заголовками:

$headers = array('User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: deflate',
'Accept-Charset: windows-1251;q=0.7,*;q=0.7');


Теперь определим адрес, с которого мы хотим что-то скачать. Например, мы хотим получить курс ЕвроДоллара с Google Finance:

$url = 'http://www.google.com/finance?q=EURUSD';

Если Вы хотите, что бы скрипт скачивал страницу не напрямую, а через прокси-сервер, то объявите переменную $proxy. Укажите там HTTP-прокси-сервер в формате IP: ПОРТ или ДОМЕН: ПОРТ. Я указал адрес 127.0.0.1 (адрес локальной машины, на которой мы запускаем скрипт) и порт — 1234. Пример бессмысленный, но он предназначен только для того, что бы показать Вам, как пользоваться возможностью задания прокси-сервера.

$proxy = '127.0.0.1:1234';

Теперь непосредственно инициализируем cURL и задаем наши настройки (URL-адрес и массив с заголовками):

$c = curl_init($url);
if ($proxy) // Если задана переменная с прокси-сервером, то приказываем использовать его.
{
curl_setopt($c, CURLOPT_PROXY, $proxy);
}

curl_setopt($c, CURLOPT_HTTPHEADER, $headers); // Передаем массив с HTTP-заголовками.
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); // Это для того, что бы cURL возвращал текст сраницы, а не выводил его на экран.
$page = curl_exec($c); // Запускаем сам процесс и записываем скачанную страницу в $page;
curl_close($c); // Освобождаем задействованные ресурсы, т.к. мы все сделали, cURL нам больше не нужен.


Все! Теперь в переменной $page скачанная страница. Теперь используйте регулярные выражения или какое-нибудь другое средство и вычленяйте нужные данные из страницы.

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

Удачи!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.