{% else-1 %}
(13 дек 2012, 16:27) (0/0) [0]
*
(7 дек 2012, 00:26) (0/0) [0]
$id = $_GET[\'dir\'];
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,\'http://wap.rate.mail.ru?\' . $id);
curl_setopt($curl,CURLOPT_USERAGENT,\'Nokia: 5130\');
curl_setopt($curl,CURLOPT_TIMEOUT,5);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$text = curl_exec($curl);
curl_close($curl);
echo $text;


Если у нас например ссылка http://wap.rate.mail.ru/523 тогда через str_replace заменяем на ?id=523

Тоесть так:

$id = $_GET[\'dir\'];
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,\'http://wap.rate.mail.ru?\' . $id);
curl_setopt($curl,CURLOPT_USERAGENT,\'Nokia: 5130\');
curl_setopt($curl,CURLOPT_TIMEOUT,5);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$text = curl_exec($curl);
curl_close($curl);
$text = str_replace(\'http://wap.rate.mail.ru\',\'?id=\',$text);
echo $text;
(6 дек 2012, 22:38) (0/0) [0]
Maksamka, Какой массив?
(6 дек 2012, 22:28) (0/0) [0]
UP Может комуто будет полезно.
(11 ноя 2012, 18:56) (0/0) [0]
~**АрхангеЛ**~, Тоже не вижу*
(11 ноя 2012, 18:39) (0/0) [0]
Советую прочитать документацию о функции curl_setopt() и особо обратить внимание на опции

http://www.php.su/functions/?curl-setopt
(11 ноя 2012, 18:35) (5/0) [5]
Давно не создавал темы с урокам*Так вот,сегодня раскажу как писать граберы с помощью cURL.
Первое,что нам понадобится это хостинг с поддержкой данной библиотеки (cURL).
А сейчас раскажу в чём отличия между cURL и file_get_contents()

Как известно cURL намного функциональней чем функция file_get_contents() сейчас опишу то что можно делать с помощью сURL но нельзя делать с file_get_contents()

1.Можно заменять юзер агент
2.Можно устанавливать время загрузки страницы
3.Можно заменять хеадеры
Отличий много,но как по мне самое большое то,что сURL работает намного быстрей.

Теперь перейдём к практике.Наша задача ограбить страничку \"Курсы валют\" с сайта http://wap.rate.mail.ru вырезать мы ничего не будем,это зделаете сами.

Создаём файл,в нём прописываем:

<?php

?>

надеюсь все знают для чего это?Это значит что код внутри этих ограничений будет выполнен на языке php.
Далее мы начнём сеанс cURL зделаем мы это с помощью функции curl_init() которую присвоим к переменной с названием \"curl\" Внимание! Переменную можете называть любым именем.

<?php
$curl = curl_init();
?>

Далее нам нужно ввести адрес ограбленной странички.

<?php
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,\'http://wap.rate.mail.ru\');
?>

Обьясняю что к чему.Функция curl_setopt() устанавливает параметры для сeанса cURL заданным переменной \"curl\" Функция имеет следующий вид

curl_setopt(сеанс,опция,значение)

В нашем случае опция - CURLOPT_URL означает что нам нужно получить данные с определенного URL,а в значение мы вписываем адрес страницы которых хотим ограбить.

Теперь давайте установим следующие параметры для нашего сеанса.

<?php
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,\'http://wap.rate.mail.ru\');
curl_setopt($curl,CURLOPT_USERAGENT,\'Nokia: 5130\');
curl_setopt($curl,CURLOPT_TIMEOUT,5);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
?>

CURLOPT_USERAGENT - устанавливает наш USER AGENT тоесть админ сайта который мы будем грабить будет видеть наш ЮА как \"Nokia: 5130\" можно для прикола написать \"Google_bot\".

CURLOPT_TIMEOUT - это таймаут загрузки страницы,мы выставили 5,если наша страница будет грузиться более 5 секунд,то загрузка приостановится

CURLOPT_RETURNTRANSFER - означает что мы сможем изменять содержимое страницы до его вывода.

Это почти всё,осталось вывести данные и закрыть сеанс cURL

<?php
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,\'http://wap.rate.mail.ru\');
curl_setopt($curl,CURLOPT_USERAGENT,\'Nokia: 5130\');
curl_setopt($curl,CURLOPT_TIMEOUT,5);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$text = curl_exec($curl);
curl_close($curl);
echo $text;
?>


Функция curl_exec() присваивает переменной \"text\" данные с ограбленной странички,а curl_close() закрывает наш сеанс с cURL.

echo $text; - выводит переменную \"text\" в которой хранится данные с ограбленной странички.Вот собственно и всё,регулярные выражения такие как str_replace и preg_replace которые предназначены для замены или вырезания данных пишем перед echo $text;

Вырезаем всё собственно как и через file_get_contents();
  • 1 из 1