29.04.2024г.15:11
Добро пожаловать на DevelStudio.3dn.ru — Уникальное для DevelStudio!
ГлавнаяФорумУрокиПримерыИсходникиНов. СообщенияЗаказать исходникВаша ссылка
Форма входа
Мини-чат
Загрузка чата...
Отправить
Наши флудеры
Ник: Resh
Сообщений: 527
Администраторы
Resh
Ник: Slava_Uchiha
Сообщений: 232
Администраторы
Slava_Uchiha
Ник: Skryaga
Сообщений: 145
Друзья
Skryaga
Партнёры
Кто на сайте
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Пользователи
Гости сайта
Пользователи отсутствуют...

Cчетчики
Анализ интернет сайта
Счетчик тИЦ и PR
Уроки Урок 14. Граббим информацию с сайта
Сейчас вам расскажу как граббить инфу ( в данном случае IP с сайта 2ip.ru)

для этого нам нужно

1 - то что нам нужно сграбить

2 - откуда мы будим граббить то что нам нужно

~~~

1 - в данном случае мой IP 178.45.144.181

2 - http://2ip.ru





так теперь добавим функцию коннект через кёрл,

выглядит это так

PHP код:

Code
function connect($link){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,$link);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  curl_setopt($ch, CURLOPT_GET, 1);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  $otvet = curl_exec($ch);
  curl_close($ch);
return $otvet;}


так .. теперь мы берём ссылку на страницу с которой будем граббить и
добавляем её в скрипт под переменной $link и пришиваем с кёрла $otvet



PHP код:


Code
function connect($link){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,$link);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
  curl_setopt($ch, CURLOPT_GET, 1);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  $otvet = curl_exec($ch);
  curl_close($ch);
return $otvet;}
$link = http://2ip.ru/';
$otvet=connect($link);

ура! мы соеденились с сервером о_О

терь дело за граббингом

код для сграбливания я расписывать не буду .. берите уже готовый и пользуйтесь на здоровьё ^_^

PHP код:

Code
$begin = 'пишите тут то что стоит перед тем что нам нада сграбить'; 
$begin = strpos($otvet, $begin) + strlen($begin);
$end = 'сдесь пишем то что стоит после того что нам нада сграбить'; 
$end = strpos($otvet, $end, $begin);
$lc = substr($otvet, $begin, $end - $begin);


пример :

если нам надо грабить IP  178.45.144.181 с страницы http://2ip.ru/

смотрим исходный код страницы и находим IP 178.45.144.181

Код HTML:

[code]</span> <big>178.45.144.181</big> <!--<a href="" title="">Что ещё можно узнать об IP-адресе?</a>--> <div class="notepad" onclick="javascript:showEffectBlock('notepadBlock')" > видим что число 178.45.144.181 [/code]

запихнуто в <big> и </big>


тогда у нас получится

PHP код:
 
Code
function connect($link){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,$link);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  curl_setopt($ch, CURLOPT_GET, 1);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  $otvet = curl_exec($ch);
  curl_close($ch);
return $otvet;}
$link = 'http://2ip.ru/';
$otvet = connect($link);
$begin = '<big>';
$begin = strpos($otvet, $begin) + strlen($begin);<br>$end = '</big>';
$end = strpos($otvet, $end, $begin);
$lc = substr($otvet, $begin, $end - $begin);

вот и всё ... сграббили .. но как вывести на экран ?!



PHP код:

Code
c("edit1")->text = $lc;

урок готов желаю удачи вам юные скриптописатели

Создадим на форму "кнопку" и "поле ввода"

На создание формы ставим этот код

Code
function connect($link){
          $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL,$link);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
           curl_setopt($ch, CURLOPT_TIMEOUT, 10);
           curl_setopt($ch, CURLOPT_GET, 1);
           curl_setopt($ch, CURLOPT_HEADER, 1);
           curl_setopt($ch, CURLOPT_COOKIE, $cookie);
           $otvet = curl_exec($ch);
           curl_close($ch);
return $otvet;



В нопку вставим следующий код
Code
$link = 'http://2ip.ru/';
$otvet = connect($link);
$begin = '<big>';
$begin = strpos($otvet, $begin) + strlen($begin);
$end = '</big>';
$end = strpos($otvet, $end, $begin);
$lc = substr($otvet, $begin, $end - $begin);
c("edit1")->text = $lc;

Автор : Resh

Специально для DevelStudio.3dn.ru

Комментируем активнее.
13 комментариев
8839 просмотров
автор: Resh
дата: 31.07.2011, 15:35
Admin5525
29.06.2012 12:31
вот здесь ошибка типа $ch = curl_init();
Resh
06.07.2012 11:45
Ошибки тут нет, если бы была я бы не выкладывал этот урок. У вас DS3.0?
Admin5525
29.06.2012 12:18
ошибку выдаёт
Ghost_Ukr
24.05.2012 19:52
А можно ли грабануть файл с Стилем?я пробывал не выходит,или выдает бред.
Сайт с которого хотел сграбить:http://www.gismeteo.ua/city/daily/14410
Начало Тега:<dd class="value m_temp c">
Конец Тега:</dd>
Вывод: нифига
xsnakes
31.03.2012 13:53
Блин ну и урок...
На форуме дс уже задолбали спрашивать почему код не пашет...
А всё потому, что кто-то сказал людям объявлять функцию более одного раза... Из кнопки...
Функцию нужно объявлять в создании, а всё остальное писать в кнопке!
z668
14.01.2012 23:39
Если не нужны прокси то проще получить ip-шник так:
Code

function get_ip()
{
  $parser = file_get_contents("http://2ip.ru/index.php");
  preg_match_all('#<big>([\d\.:]*)</big>#is', $parser, $stat);
  foreach ($stat[1] as $ip) {

  echo $ip;

  }
}
Resh
17.09.2011 22:21
Все работает, не правильно что то делаешь
crow_by
17.09.2011 18:22
Не робит
Resh
08.08.2011 23:19
И все будет нормк
Resh
08.08.2011 23:18
и Поле для ввода не забудь создать
Resh
08.08.2011 23:18
Надо читать внимательнее, просто скопируй последний самый код и поставь его в Действия на кнопку и все
1-10 11-12
Вы не можете добавлять комментарии

При копировании материалов → указывайте ссылку на источник!
DevelStudio.3dn.ru © 2011 Все права защищены. Используются технологии uCoz DevelStudio
Счётчики
Сегодня нас посетило
Показано 2 последних комментария из 252.
С помощью этого компонента можно прослушивать музыку в потоке TMusic v1.2 . дальше »
С помощью этого компонента можно прослушивать музыку в потоке TMusic v1.1 . дальше »
Мини-статистика
Всего зарегистрировано: 575
Постов на форуме: 2067
Тем на форуме: 452