Помогите с написанием грабберов
1.
юЮЮфюв (30.11.2011 / 08:58)
Раньше никогда не интересовался грабберами,но теперь решил научиться «всем примудростям»
Начну с простого вопроса,о вырезке ненужных мне данных.
Для примера взял код написанный в блоге:
<?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, научи меня
стучи в лс как свободен будешь
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