{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (11 ноя 2012, 18:35) [5/0] [5] [отв] [спам] [под] +1 | -1

Давно не создавал темы с урокам*Так вот,сегодня раскажу как писать граберы с помощью 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();

2. [автор] (11 ноя 2012, 18:39) [0/0] [0] [отв] [спам] [под] +1 | -1

Советую прочитать документацию о функции curl_setopt() и особо обратить внимание на опции

http://www.php.su/functions/?curl-setopt

3.
KraB * 0.07
(11 ноя 2012, 18:39) [0/0] [0] [отв] [спам] [под] +1 | -1

Спасибо,полезное чтиво*

4. (11 ноя 2012, 18:48) [1/0] [1] [отв] [спам] [под] +1 | -1

Автору аще респект гг где тут плюсы тыкаются *

5. [автор] (11 ноя 2012, 18:56) [0/0] [0] [отв] [спам] [под] +1 | -1
~**АрхангеЛ**~,

Тоже не вижу*

6. (11 ноя 2012, 19:14) [0/0] [0] [отв] [спам] [под] +1 | -1

ага полезная инфа

7. [автор] (6 дек 2012, 22:28) [0/0] [0] [отв] [спам] [под] +1 | -1

UP Может комуто будет полезно.

8. (6 дек 2012, 22:36) [0/0] [0] [отв] [спам] [под] +1 | -1

Масив забыл. Код откроет 1 страницу.

9. [автор] (6 дек 2012, 22:38) [0/0] [0] [отв] [спам] [под] +1 | -1
Maksamka,

Какой массив?

10. (6 дек 2012, 22:43) [0/0] [0] [отв] [спам] [под] +1 | -1

curl_setopt($curl,CURLOPT_URL,\'http://сайт.ру/?\'.$_SERVER[\'QUERY_STRING\']);

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений