Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Граббер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Начал писать граббер, сталкнулся с некоторывми проблемами
Ezi
Отправлено: 08 Марта, 2011 - 11:15:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Решил написать граббер Ниндзя для сайта x-traz.ru Закатив глазки , мой скрипт успешно копирует со страницы первый статус и выводит его Улыбка , но что не так, Растерялся в том смысле что статусов на странице 15 штук, а выводит только один Огорчение ... Уважаемые гуру, жду вашей помощи. Улыбка


код под спойлером:
Спойлер (Отобразить)


-----
Хочешь жить - умей вертеться
 
 Top
Champion Супермодератор
Отправлено: 08 Марта, 2011 - 12:02:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ezi, а представляете, дело в том, что вы так код и написали, чтоб он выводил 1, а не 15. Чтобы действие произошло 15 раз, есть классная штука - цикл называется.
А еще есть preg_match_all.
 
 Top
ALEN
Отправлено: 08 Марта, 2011 - 12:03:44
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Ezi
Используй CURL + регулярные выражения.

Используя мой класс: http://forum.php.su/topic.php?fo...35&topic=739

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $xtraz=array();
  3. $parser=new cms_http_parse;
  4. $content=$parser->get("http://x-traz.ru/");
  5. preg_match_all("#<td><a href=\'[^\']*\'><img src=\'com\/status\/images\/status\/([^\']*)\'.*alt=\'([^\']*)\'\s*\/><\/a><\/td>#isU",$content,$match);
  6. foreach($match[1] as $key=>$value){
  7. $xtraz[$key]['name']=trim($match[2][$key]);
  8. $xtraz[$key]['img']="http://x-traz.ru/com/status/images/status/".$value; ?>
  9. <img src="<?=$xtraz[$key]['img']?>" border="0"> - <?=$xtraz[$key]['name']?><br/>
  10. <?PHP }

(Отредактировано автором: 08 Марта, 2011 - 12:20:45)

 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 12:07:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




ALENя бы с удовольствием, но ещё нуб, зайди в аську пожалуйста, тебя добавил.

Championподскажи как цикл реализовать, я в них плохо очень понимаю,


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 08 Марта, 2011 - 12:08:28
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Ezi
1) Я и так в ICQ
2) Я тебе уже готовый код дал, подключи класс и все!
 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 13:04:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Как всё сделаю выложу код, вдруг кому-нибудь пригодится
(Добавление)
Как всё сделаю выложу код, вдруг кому-нибудь пригодится

Это надо скачать и установить если на ДЕНВЕРе работаете
http://www[dot]denwer[dot]ru/packages/php5[dot]html


-----
Хочешь жить - умей вертеться
 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 15:33:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




ALEN пишет:
<?PHP
$xtraz=array();
$parser=new cms_http_parse;
$content=$parser->get("http://x-traz.ru/");
preg_match_all("#<td><a href=\'[^\']*\'><img src=\'com\/status\/images\/status\/([^\']*)\'.*alt=\'([^\']*)\'\s*\/><\/a><\/td>#isU",$content,$match);
foreach($match[1] as $key=>$value){
$xtraz[$key]['name']=trim($match[2][$key]);
$xtraz[$key]['img']="http://x-traz.ru/com/status/images/status/".$value; ?>
<img src="<?=$xtraz[$key]['img']?>" border="0"> - <?=$xtraz[$key]['name']?><br/>
<?PHP }


Блин, это совсем не то, но работает... Мне нужен не список статусов, а сами статусы...


-----
Хочешь жить - умей вертеться
 
 Top
JustUserR
Отправлено: 08 Марта, 2011 - 16:01:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ezi В качестве возможного варианта решения предполагаемой задачи, заключающейся в извлечении группы информационных полей из целевого документа на основании заданных параметрических условий, возможно использование системы XML-анализатора, позволяющей произвести определение расположения инкапсулированных объектов в документе на основании их определенных свойств и области расположения, и обеспечить получение требуемых информационных полей в фиксированном шаблоне XML-пути


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 16:06:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




JustUserR а нельз ли этот самый "XML-анализатор" на языке РНР сделать?
(Добавление)
Champion пишет:
А еще есть preg_match_all.
Помогите составить регулрку


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 08 Марта, 2011 - 16:48:55
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Ezi
Учи то, что я написал, тебе вывод заменить нужно только. Уже полностью готовое решение дал.
 
 Top
JustUserR
Отправлено: 08 Марта, 2011 - 16:50:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ezi пишет:
JustUserR а нельз ли этот самый "XML-анализатор" на языке РНР сделать?
Основные предполагаемые версии интерпретатора языка PHP осуществляют возможность проведения анализа XML-документоа на основе функциональности, поставляемой в виде интегрированных объектов или подключаемых активных элементов дополнительных библиотек на основании zend-интерфейса; описание предполагаемых фукнций для анализа XML-документо предоставлено здесь http://www.php.su/functions/?page=cat_xml


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 20:22:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




БЛИН, не получается подправить код чтобы вместо картинок с названием статуса сами статусы воровал, КТО МОЖЕТ НАПИШИТЕ ПОЖАЛУЙСТА ЗА МЕНЯ


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 08 Марта, 2011 - 20:28:39
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Ezi
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $xtraz=array();
  3. $parser=new cms_http_parse;
  4. $content=$parser->get("http://x-traz.ru/");
  5. preg_match_all("#<td class=\'zcaption\' width=\'1000\'>(.+)<div align=\'right\'>#isU",$content,$match);
  6. foreach($match[1] as $key=>$value){
  7. $xtraz[$key]['status']=trim($value); ?>
  8. <?=$xtraz[$key]['status']?><br/>
  9. <?PHP }

(Отредактировано автором: 08 Марта, 2011 - 21:02:56)

 
 Top
Ezi
Отправлено: 08 Марта, 2011 - 21:23:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Ура ура ура, да здравствует великий ALEN всё работает! в итоге код у нас:

Спойлер (Отобразить)


Теперь хотелось бы сделать чтобы парсер "шагал" по страничкам т.е. вначале присваиваться какая-либо переменная с циклом которая будет в этой строке менять значение n_page=1
http://x-traz[dot]ru/index.php?n_pag[dot][dot][dot]s=1&page=all


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 08 Марта, 2011 - 21:30:09
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




PHP:
скопировать код в буфер обмена
  1. for($i;$i<=10;$i++){
  2. echo "http://x-traz.ru/index.php?n_page=".$i."&id_s=1&page=all";
  3. }
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB