#21 2011.05.12 18:51

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: учимся писать грабб

Код:

1
span style="color: #0000BB"><?php$xml = new SimpleXMLElement('http://wapinet.ru/', null, true);echo $xml->body[0]->asXML();

Неактивен

#22 2011.05.12 19:24

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: учимся писать грабб

А хотя и сейчас познакомимся с ними.
вообщем даю кусочек кода он будет у тебя шаблоном пожже будешь писать боле быстрые регулярки.
например нам надо вырезать неизвесный текст
мы берем текст начало и конец извесного.
вырезать заголовки html начиная с <head> и заканчивая </head>
будешь использовать preg_replace

Код:

1
lt;?$f = preg_replace('/<head>.*?<\/head>/s','',$f);

где .*? это неизвесный текст
Наверное заметил я поставил обратный слеш \ перед слешем
Это для того чтобы заэкранировать спец символ /
спец символы это те символы которые использует выражения
их много приведу популярные \^ $ . [ ] | ( ) ? * + { } / ^
их надо экранировать в нашем случае.
например если нам надо вырезать ссылку с неизвесным текстом тот что меняется скриптом
допустим <a href="http://wapinet.ru/ne_izvesnuy_text">ne_izvesnuy_text</a>
чтобы вырезать такую ссылку надо применить preg_replace('/<a href="http:\/\/wapinet\.ru\/.*?">.*?<\/a>/s','',$f);
Добавлено спустя   4 минуты  8 секунд:

Gemorroj написал:

Код:

1
span style="color: #0000BB"><?php$xml = new SimpleXMLElement('http://wapinet.ru/', null, true);echo $xml->body[0]->asXML();

Ну можно и так хотя я ниразу так не делал.
Я воще последнее время все по масивам расбиваю и выводится как свой а вообще если чесно то все по базам пару последних скриптов

Неактивен

#23 2011.05.13 16:34

DarkRiDDeR
Участник
Откуда: Вам это не надо знать
Зарегистрирован: 2011.05.12
Сообщений: 163
Карма: 4
Профиль Веб-сайт

Re: учимся писать грабб

TLENS, можно вырезать и без регулярок, что я выше написал. Подсказка: массивы

Неактивен

#24 2011.05.24 23:33

poisen
Участник
Откуда: Волг
Зарегистрирован: 2011.05.12
Сообщений: 10
Карма: 0
Профиль

Re: учимся писать грабб

Хороший пример! И главное я вкуриваю потихоньку smile . А как будет выризатся поле с отображением линка до файла?

Неактивен

#25 2011.05.27 15:26

DarkRiDDeR
Участник
Откуда: Вам это не надо знать
Зарегистрирован: 2011.05.12
Сообщений: 163
Карма: 4
Профиль Веб-сайт

Re: учимся писать грабб

Есть <a href="http://wapinet.ru/ne_izvesnuy_text">ne_izvesnuy_text</a>
Вырезаем (если правильно понял):

Код:

1
preg_replace('#(<a href=")http:\/\/wapinet\.ru\/(.*?">.*?<\/a>)#is', '$0', $f); //Останется <a href="ne_izvesnuy_text">ne_izvesnuy_text</a>

Можно вырезать и по другому, много способом. Ну пока ладно. Короче, что в скобках, сравни с предыдущим примером, как бы сохраняется в переменных по очереди. $1 - <a href=", $2 - .*?">.*?<\/a>. $0 - это всё сохранённое, а именно: <a href=".*?">.*?<\/a>

Неактивен

#26 2011.05.29 09:34

poisen
Участник
Откуда: Волг
Зарегистрирован: 2011.05.12
Сообщений: 10
Карма: 0
Профиль

Re: учимся писать грабб

Ага... Так сейчас попробую .

Неактивен

#27 2011.05.29 12:39

poisen
Участник
Откуда: Волг
Зарегистрирован: 2011.05.12
Сообщений: 10
Карма: 0
Профиль

Re: учимся писать грабб

http://fank.ru/foto/category/s/13/
вот что выходит
http://xmxx.ru/video2/video4/
выризал что смог
как правельно исправить чтобы перети к фото и вырезать альбомы
$inf = str_replace('<a href="/foto/data/s/">[v]</a>','<a href="http://fank.ru/foto/s/">Смотреть</a>',$inf);
$inf = str_replace('/<a href="http:\/\/fank\.ru\/foto\/album\/u\/.*?">.*?<\/a>/s','',$inf);

а в целом вот

Код:

1
span style="color: #0000BB"><?php//ob_start(); // включаем буферизацию$conn = curl_init(); // создаём новое curl подключениеcurl_setopt($conn, CURLOPT_URL, "http://fank.ru/foto/category/s/13/?".$_SERVER['QUERY_STRING']); // подключаемся по по ссылкеcurl_setopt($conn, CURLOPT_RETURNTRANSFER, 1); // возвращаем полученные данные в ссылку (не печатаем)curl_setopt($conn, CURLOPT_USERAGENT, "Nokia2630/2.0 (04.90) Profile/MIDP-2.1 Configuration/CLDC-1.1"); // маскеруемся под юзер-агент$inf = curl_exec($conn); // получаем данные в переменную $infcurl_close($conn); // закрываем соединение$inf = preg_replace('~<\?xml version=(.+)<body>~is', '', $inf); // убираем шапку документа$inf = preg_replace('~<div class="header"><a href="http://fank.ru/"><img src="http://i.fank.ru/i/d0/ru/logo_foto.gif" width="120" height="34" alt="" /></a></div>~isu', '', $inf);$inf = preg_replace('~<div class="body">Language: <img src="http://i.fank.ru/i/d0/flag_en.gif" alt="" /> <a href="http://fank.mobi/">en</a> | <img src="http://i.fank.ru/i/d0/flag_ru.gif" alt="" /> ru*<br/></div>~isu', '', $inf);$inf = str_replace('<a href="http://waplog.net/ru/c.shtml?13"><img src="http://c.waplog.net/ru/13.cnt" alt="waplog"/></a>', '', $inf);$inf = preg_replace('|<div class="downban">(.*?)</div>|is','</div>',$inf);$inf = str_replace('<img src="/f/', '<img src="http://f1.fank.ru/f/', $inf); // исправляем ссылку на скриншот$inf = str_replace('<a href="/foto/data/s/">[v]</a>','<a href="http://fank.ru/foto/s/">Смотреть</a>',$inf);$inf = str_replace('<a href="/foto/data/s/', '<a href="http://fank.ru/foto/data/s/', $inf);$inf = str_replace('/<a href="http:\/\/fank\.ru\/foto\/album\/u\/.*?">.*?<\/a>/s','',$inf);$inf = str_replace('<a href="/foto/category/s/13/', '<a href="http://fank.ru/foto/category/s/13/', $inf);$inf = str_replace('<div class="box">', '<div class="ok">', $inf); // изменяем под стили блок$inf = str_replace('<div class="m">', '<div class="main">', $inf); // изменяем под стили блокinclude '../header.php'; // подключаем шапку документаecho $inf; // выводим на печать отредактированные данныеinclude '../footer.php'; // подключаем низ документа?>

Отредактировано poisen (2011.05.29 12:40)

Неактивен

#28 2011.05.30 17:32

Swinger
Участник
Зарегистрирован: 2009.09.09
Сообщений: 28
Карма: 1
Профиль

Re: учимся писать грабб

preg_match('#<body>(.*?)</body>#si', file_get_contents('http://wapinet.ru/'), $body);
echo $body[1]; // выведет все, что находится между тегами body
и ненад вырезать всякие тэги

Неактивен

#29 2011.10.27 20:06

N1ck
Участник
Зарегистрирован: 2011.10.27
Сообщений: 9
Карма: 0
Профиль Веб-сайт

Re: учимся писать грабб

<!--LiveInternet logo--><a href="http://www.liveinternet.ru/ click" 43. target="_blank"><img src="// counter.yadro.ru/logo?26.10" 44. title="LiveInternet: показано число посетителей за сегодня" 45. alt="" border="0" width="88" height="15"/></a><!--/ LiveInternet-->  как ето вирежат в грабере?


Я маргал 'сука' , не качай головой!

Неактивен

#30 2011.10.29 21:20

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: учимся писать грабб

DarkRiDDeR написал:

Кажись я не в темку попал, извенясь, smile.
Ладн, моя задач:
обрезать всё до тега <body> включительно. Ведь зачем нам чужие заголовки и мета-теги, и т.п.? Ну и напоследок тег </bodу> нейтрализовать. Не будет же он болтаться на морде, как кусок ненужной кожи.

Код:

1
span style="color: #0000BB"><?php$array = explode('<body>', $html); //не помню включительно или нет.$body = str_replace('</body>', null, $array[1]); //если надо, хотя зачем? Обычно же бывает </body></html>?>

Swinger написал:

preg_match('#<body>(.*?)</body>#si', file_get_contents('http://wapinet.ru/'), $body);
echo $body[1]; // выведет все, что находится между тегами body
и ненад вырезать всякие тэги

True вариант smile
Надо еще Геморроя вариант посмотреть, как он работает.

Отредактировано tipsun (2011.10.29 21:31)

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s