Помогите с написанием грабберов

1. юЮЮфюв (30.11.2011 / 08:58)
Раньше никогда не интересовался грабберами,но теперь решил научиться «всем примудростям» smile
Начну с простого вопроса,о вырезке ненужных мне данных.
Для примера взял код написанный в блоге:
 <?php
$url="http://mp3.wapos.ru/";//url сайта жертвы
error_reporting(0); //на всякий случай отключаю показ ошибок, но эту строк я вставляю в самую последнюю очередь

$curl = curl_init();//включаем процес
curl_setopt($curl, CURLOPT_URL, $url);//подключаемся к $url
curl_setopt($curl, CURLOPT_REFERER, "http://amursoc.ru");//подставляем рефера
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);//ставим тайм аут(необезательно)
$stranica = curl_exec($curl);//присваеваем к переменной
curl_close($curl);//заканчиваем процес
echo $stranica;

?>

В итоге имеем это http://amursoc.ru/ya.php
Ну так вот,как вырезать например дизайн вапоса?

2. Михаил (30.11.2011 / 13:12)
это ты чисто данные взял. вырежь вот так
$stranica=preg_replace('/<head(.*?)<\/head>/si','',$stranica);
echo $stranica;
это уберет стиль

3. Артур (30.11.2011 / 13:58)
Это уберёт всю шапку

4. Михаил (30.11.2011 / 14:06)
так там много лишнего и бывает и ява год лишний к примеру

Добавлено через 03:43 сек.
посмотрел граб по ссылке там даже нет подключения стиля. просто реж дивы и всё, либо заменяй их на свои
$stranica=preg_replace('/<div(.*?)>/si','',$$stranica);
$stranica=str_replace('</div>','<br>', $stranica);
echo $stranica;


5. юЮЮфюв (30.11.2011 / 14:15)
Мне сам граб. Этот как таковой и не нужен)
Мне просто нужно было на примере понять как вырезать ненужное)

6. Михаил (30.11.2011 / 14:19)
ооо ну это другой вопрос. двоих обучил граббству так щас мои конкуренты xDDDD один кстати тут на форуме)

7. An0nimous (30.11.2011 / 15:28)
6. DeLUXXMAO, научи меня infat стучи в лс как свободен будешь

8. Михаил (30.11.2011 / 22:45)
xDDD не клоунадь)))

9. Константин (30.11.2011 / 23:13)
8. DeLUXXMAO, научи меня тож пожалуйста. Когда филки у меня будут обязательно тебя отблагадарю

10. ramzes (30.11.2011 / 23:27)
DeLUXXMAO (30 Ноября 2011 / 13:12)
это ты чисто данные взял. вырежь вот так
$stranica=preg_replace('/<head(.*?)<\/head>/si','',$stranica);
echo $stranica;
это уберет стиль
не очень оптимальное решение

11. юЮЮфюв (01.12.2011 / 08:47)
10,подскажи по оптимальней плиз))

12. ramzes (01.12.2011 / 09:05)
Берите только содержимое тега <body> а еще лучше только тот кусок тела который вам нужен, не обрезайте ненужное а вырезайте нужное

13. юЮЮфюв (01.12.2011 / 09:10)
Как это сделать?дай пример кода плиз)

14. Андрей (01.12.2011 / 09:23)
preg_match('#<div>.*</div>#siU', 'страница', 'массив с результатом');
Хотя не везде лучше вырезать то что нужно, на веб сайтах по другому никак. На вап, если сайт, например, маленький и без рекламы, то можно просто вырезать всё ненужное.

15. Павел (05.12.2011 / 18:47)
ramzes (1 Декабря 2011 / 13:05)
Берите только содержимое тега <body> а еще лучше только тот кусок тела который вам нужен, не обрезайте ненужное а вырезайте нужное
он имел ввиду что то подобное
<?
preg_match( '#'.preg_quote('<body>').'(.+?)'.preg_quote('</body>').'#is', $html, $result );
echo $result[1];
// $html  - сам код где нужно вырезать нужный нам код
// $result - выходной  массив
?>
я прав?

16. ramzes (05.12.2011 / 22:36)
15. ksandr,
ну да
<? preg_match('|<body>(.*?)<\/body>|', $match, $content); ?>
хотя вместо <\/body> лучше использовать последний из нужных элементов (первый счетчик например
избавит от лишних телодвижений, но это уже по месту действий надо решать

URL: https://visavi.net/topics/26977