Xwab
Форумыnavigate_nextСкрипты

Грабберы для новичков.
Можно ли зделать граббер h2m.ru типа реги у себя на сайте ?
Да: 50%
Нет: 19%
Не знаю: 30%
Опрошено: 26
Сообщения
Diger

Выложите пожалуйста грабберы по которъм можна учиться, а лудше учебник.

23 Июл 2010, 16:23
Rubilnik U Say

По любому грабберу можна учицца. Ток прямые руки и голова нада.

23 Июл 2010, 16:47
Diger

Rubilnik U Say, Ну надаш с легкого начинать.

23 Июл 2010, 17:11
jok3r

Diger, Начни с hello,world!
а если граббер,то пример простейшого граббера:
<?
$host='http://site.ru';
$path='/papka';
$xd = str_replace('чо меняем?','на чо меняем?',$xd);
?>


__________
посл.ред. 23 Июл 2010, 17:24; всего 1 раз 23 Июл 2010, 17:14
Reflesh

Diger, http://visavi.net/blog/blog.php?act=view&id=101& вот статья очень простой способ для новичка,ребёнок сделает

23 Июл 2010, 17:15
Diger

Спасибо вам, это я понял и написал. Как и че дальше? например дизайн, ссылки грабить.

23 Июл 2010, 17:43
jok3r

Diger, дизайн прописываешь вот так:
После <?php пишешь
echo '<link rel="stylesheet" type="text/css" href="ссылка на диз"/>';

23 Июл 2010, 18:10
Rubilnik U Say

jok3r, бред.

23 Июл 2010, 18:16
Rubilnik U Say

Вот мои советы по написанию граба:
Вот шаблоны грабов:
http://wapinet.in/files/1.txt <-это сложный,он при полученнии данных с сайта маскируется под твой браузер,т.к.на некоторых сайтах стоит защита, и страницы отдаются только реальным браузерам. К тому же, если есть две версии сайта, который грабим (wml и html), будет грабится цветная версия. В строке $host='' пишем адрес сайта без http://, в строке $path директорию, с которой грабим. При отсуцтвии таковой (если грабим весь сайт или поддомен) просто ставим слэш.
http://wapinet.in/files/2.txt <-это простой. Но я бы не рекомендовал его, лучше грабить первым вариантом. Вместо http://дрес_сайта/путь_к_папке/ пишем прямую ссылку на нузный раздел. Например, http://wapinet.in/builder/
Это всё подходит для сайтов, на которых адреса ссылок стандартные, с разной хней после знака вопроса.
Но как ограбить сайт, когда все ссылки имеют вид типа хттп://сайт.ру/папка/папка/папка/ или хттп://сайт.ру/файл.хтмл? (примечание: с *.html фишка прокатит только если это мод реврайт маскирует *.php,а статические страницы работать не будут).
http://wapinet.in/files/3.txt <-этот шаблон граба какраз для сайтов с мод реврайт. Он вставляет так недостающий нам знак вопроса, ведь скрипт грабит всё ТОЛЬКО после него. В строчке $file=str_replace('<a href="/','<a href="?id=', $file); слэш (или название папки) заменяется на значение ?id=, поэтому нада точно знать, начинается со слэша адрес,или нет.

Рекламу и прочую херню вырезаем/меняем этой регуляркой $file=str_replace('то,что вырезаем','то,что вставляем', $file); во вторых кавычках ничо не пишем,еси нада тупо вырезать что то из страницы,а можна на своё. Например,меняем адрес сайта,который грабим, на свой: $file=str_replace ('fank.ru','wapinet.in', $file);
если же ссылка с динамической заменой концовки,и названием ссылки,типа <a href="http://1124.ru/demo/q6577264562/20186/82373602.jad">Писдатая игра</a><br/> то используем эту регулярку $file=preg_replace('|<a href="http://1124.ru/(.*?)</a><br/>|is','',$file); где (.*?) выполняет роль джокера,принимающего любое значение. Т.е.нам важно вписать начало и конец.

Как переделать граббер под движок? Для начала вырезаем шапку, голову и ноги. Делается это примерно так:
$file=str_replace('<?xml version="1.0" encoding="utf-8"?>','', $file);
$file=preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file);
$file=preg_replace('|<a href="http://site.ru">На главную(.*?)</html>|is','',$file);
ну это я привёл приблизительный пример,а так варианты могут быть разными, тут уже сами думайте. Потом инклудите голову и ноги от движка. Это обычно файлы header.php и footer.php в корневой папке. Хотя я не юзаю двиг,и точно не скажу. Инклудим следующим образом: во вторую и предпоследнюю строку (после<? и перед ?>) вписываем include 'путь к файлу';


Kак всё это запомнить? Оч просто скачайте себе те три шаблона,шо я дал (просто меняете адрес сайта/директории),и на компе/телефоне делаетe следующие два шаблона
$file=str_replace('','', $file);
и $file=preg_replace('|(.*?)|is','',$file);

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

Ну а еси шо не понятно,спрашивайте:)


__________
посл.ред. 15 Авг 2010, 8:00; всего 2 раз(а) 23 Июл 2010, 18:17
jok3r

Rubilnik U Say, почему бред?!

23 Июл 2010, 18:19
Ответить на тему