Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Содрать страничку и распарсить 
:(
    Опции темы
alexandra231525480
Дата 2.10.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.9.2006

Репутация: нет
Всего: нет



Здравствуйте! Подскажите пожалуйста как можно с помощью PHP содрать страничку (цель исключительно легальная - брать статистику с бигмира). Большинство убеждает, что это лучше делать на перле, но хотелось бы на пхп (ввиду незнания перла smile )
PM MAIL   Вверх
Garret
Дата 2.10.2006, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Сокеты + регвыры.
PM MAIL WWW ICQ   Вверх
alexandra231525480
Дата 2.10.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.9.2006

Репутация: нет
Всего: нет



а без сокетов там можно? мне же просто нужен хтмл код странички по данному урлю! а там я регекспами найду нужную мне строчку...
PM MAIL   Вверх
skyboy
Дата 2.10.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



alexandra231525480, дык сокеты как раз для того, что получить этот самый "хтмл код" 
PM MAIL   Вверх
alexandra231525480
Дата 2.10.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.9.2006

Репутация: нет
Всего: нет



мм.. просто не приходилось раньше с ними дело иметь.. а не подскажете наиболее подходящие функции для этого? создать сокет, и каким образом далее получить то, что мне нужно?
PM MAIL   Вверх
skyboy
Дата 2.10.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



alexandra231525480, тема не раз обсуждалась уже, много чего было сказано, потому я тебе дам ссылку на самую(как мне кажется) крупную тему в разделе "PHP. Работа с сетевыми протоколами", а ты почитай и, если что, задавай вопросы, ладно? smile
Сграбить часть содержимого страницы 
Именно в том разделе - много тем по получению страниц и обработке их smile
PM MAIL   Вверх
клоп
Дата 19.10.2006, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Цитата(alexandra231525480 @ 2.10.2006,  17:48)
Здравствуйте! Подскажите пожалуйста как можно с помощью PHP содрать страничку (цель исключительно легальная - брать статистику с бигмира). Большинство убеждает, что это лучше делать на перле, но хотелось бы на пхп (ввиду незнания перла smile )

Содрать страницу и записать её код в файл (при условии что файл dat существует): 
Код

$lines = file('http://www.site_name.ru?site=2&top_menu=0&extended_menu=213&lang=ru');

$fp=fopen("grabb.dat","w")or die("Ошибка при записи файла\n");
flock($fp, LOCK_SH);
foreach ($lines as $line_num => $line) { fwrite($fp,$line);  }
flock($fp, LOCK_UN);
fflush ($fp);//очищение файлового буфера


Разобрать файл dat и вывести определенную часть в своем дизайне:
Код

$begin ='Начало нужного кода';
$end = 'Конец нужного кода';
$adr='grabb.dat';
$f = fopen("$adr","r") or die("Ошибка при открытии файла\n");
flock($f, LOCK_SH);
$data = fread($f, 60000);//max размер их странички
while ($data) {
 if (eregi ("$begin(.*)$end", $data, $out)) {
  $out[1] = str_replace("кусок их html кода", "кусок кода под наш дизайн", $out[1]);
  $out[1] = str_replace("кусок их html кода", "кусок кода под наш дизайн", $out[1]);
         $grabb_out= $out[1];
        break;
    }
}

flock($f, LOCK_UN);
fflush ($f);//очищение файлового буфера
fclose($f);
echo $grabb_out;

--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
-=Ustas=-
Дата 19.10.2006, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



dvska, тебе сюда - http://forum.vingrad.ru/topic-114865.html


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
elCreator
Дата 21.7.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 21.7.2007

Репутация: нет
Всего: -1



Подскажите, на каких бесплатных хостингах сработает скрипт, использующий fopen?
Или хотя бы какими правами он должен обладать для успешного выполнения...
на hut.ru - permission denied 
PM WWW ICQ   Вверх
Anarki
Дата 22.7.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 2
Всего: 11



Цитата(elCreator @  21.7.2007,  19:40 Найти цитируемый пост)
Подскажите, на каких бесплатных хостингах сработает скрипт, использующий fopen?Или хотя бы какими правами он должен обладать для успешного выполнения...на hut.ru - permission denied 

allow_url_fopen должен быть установлен в 1


--------------------
PM WWW   Вверх
scetchy
Дата 16.9.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.7.2007

Репутация: нет
Всего: нет



Здравствуйте люди!
Я новичёк в ПХП и есть следущая задача.
Есть таблица на удаленном серваке, которая находиться среди текста в ХТМЛ файле,
нужно выдрать эту таблицу при помощи ПХП и чтоб данные в таблице постоянно обновлялись с 
удаленного сервака (откуда тырили таблицу).
Вот допустим таблица :
Код

<table width="200" border="0">  <tr>  <td>1</td>  <td>2</td>  <td>3</td>  </tr>  <tr>  <td>a</td>  <td>s</td>  <td>q</td>  </tr>  <tr>  <td>b</td>  <td>d</td>  <td>w</td>  </tr>  <tr>  <td>c</td>  <td>f</td>  <td>e</td>  </tr>  <tr>  <td>d</td>  <td>v</td>  <td>r</td>  </tr> </table>

нужно чтоб данные в ячейках постоянно обновлялись.
 Спасибо.
PM MAIL   Вверх
ewolf
Дата 16.9.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 4
Всего: 18



Если предположить, что саму таблицу мы уже получили, то данные можно выдернуть так:

Код

<?php
$table = '<table width="200" border="0">  <tr>  <td>1</td>  <td>2</td>  <td>3</td>  </tr>  <tr>  <td>a</td>  <td>s</td>  <td>q</td>  </tr>  <tr>  <td>b</td>  <td>d</td>  <td>w</td>  </tr>  <tr>  <td>c</td>  <td>f</td>  <td>e</td>  </tr>  <tr>  <td>d</td>  <td>v</td>  <td>r</td>  </tr> </table>';

$reg_tr = '/<tr>(.+?)<\/tr>/i';
$reg_td = '/<td>(.+?)<\/td>/i';

$data = array();

if( preg_match_all($reg_tr, $table, $trs, PREG_PATTERN_ORDER) )
{
    for( $i = 0; $i < count($trs[1]); $i++ )
    {        
        if( preg_match_all($reg_td, $trs[0][$i], $tds, PREG_PATTERN_ORDER) )
        {
            $data[$i] = array();
            for( $j = 0; $j < count($tds[1]); $j++ )
                $data[$i][$j] = $tds[1][$j];        
        }    
    }
}

// В $data содержатся данные нашей таблицы
    
?>

PM MAIL ICQ   Вверх
scetchy
Дата 16.9.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.7.2007

Репутация: нет
Всего: нет



2Ewolf
спасибо, но так я и сам могу =)
А вот чтоб грабить таблицу с удаленного сервака чет не получается....
вот пробую через регулярные выражения :

Код

preg_match_all( '#\<tr\s+class\=tablebody\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<\/tr\>#isU',

скажите через них же возможно осуществить задуманное?
PM MAIL   Вверх
ewolf
Дата 17.9.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 4
Всего: 18



Возможно. Посмотрите, что окружает таблицу (какой код), и с помощью регулярного выражения выделяйте все, что внутри него
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0963 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.