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
Форумы портала PHP.SU :: Версия для печати :: Регулярка
Форумы портала PHP.SU » » Вопросы новичков » Регулярка

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

1. event - 16 Января, 2015 - 13:46:13 - перейти к сообщению
Привет.
Есть такой кусок кода:

CODE (html):
скопировать код в буфер обмена
  1. <h1 class="title">Магия&nbsp;/&nbsp;<span style="color:#2989ae; font-size:34px;">ВСЕ ЧТО ТУТ НУЖНО СПАРСИТЬ
  2. &nbsp;</span></h1>


Помогите составить регулярку чтобы спарсить
(Добавление)
PHP:
скопировать код в буфер обмена
  1. preg_match('#"><h1 class="title">Магия&nbsp;/&nbsp;<span style="color:#2989ae; font-size:34px;">(.*)&nbsp;</span></h1>#U', $text, $pname);
  2.  
  3. var_dump($pname);


Пробую так не работает(
(Добавление)
Помогите плз
2. GoDr - 16 Января, 2015 - 14:47:59 - перейти к сообщению
Может как-то так?
PHP:
скопировать код в буфер обмена
  1. preg_match('#<h1.*?<span.*?>(.*?)</span></h1>#is', $str, $tmp);
  2. echo $tmp[1];
  3.  
3. event - 16 Января, 2015 - 14:58:24 - перейти к сообщению
GoDr, тож не пашет.
(Добавление)
http://www[dot]magazin[dot]zvezda[dot]org[dot]ru[dot][dot][dot]iteli/70/1/2033/ - вот ссылка откуда нужно спарсить, спарсить нужно название.
4. GoDr - 17 Января, 2015 - 10:30:59 - перейти к сообщению
Да уж.. не самый лучший пример создания сайтов.. На одной странице аж целых 3(!) заголовка H1. И главное, ни одного идентификатора.... Не понял привязаться вообще не к чему..

event, так попробуй
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2.     'http://www.magazin.zvezda.org.ru/firma-zvezda/mstiteli/70/1/2033/',
  3.     'http://www.magazin.zvezda.org.ru/firma-zvezda/nastolnye-igry-strategicheskie/54/1/8934/',
  4.     'http://www.magazin.zvezda.org.ru/firma-zvezda/disney-samolety/75/1/2079/',
  5.     'http://www.magazin.zvezda.org.ru/firma-zvezda/tehnika-WWII-1-35/21/1/3625/',
  6.     'http://www.magazin.zvezda.org.ru/firma-zvezda/nastolnye-igry-logicheskie/51/1/8903/',
  7.     'http://www.magazin.zvezda.org.ru/firma-zvezda/nastolnye-igry-prikluchencheskie/52/1/8933/'
  8. );
  9. foreach($arr as $value){
  10.     $str = file_get_contents($value);
  11.     preg_match('#<h1.*?<span.*?2989ae.*?>(.*?)</span.*?<h1.*?Цена.*?<span.*?>(.*?)</span#is', $str, $tmp);
  12.     echo $tmp[1] . ' - ' . $tmp[2] . '<br>';
  13. }
  14.  


Результат:
Цитата:
Железный человек - 370р.
настольная игра Рококо - 2100р.
Шквал - 290р.
Немецкий бронетранспортер с пусковыми установками Sd.Kfz.251/1 Ausf.B "Ханомаг" - 800р.
настольная игра Ифрито - 1600р.
настольная игра Легенда о Звёздном щите (Дополнение к игре Андор) - 1100р.


PS
только цена:
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<h1.*?Цена.*?<span.*?>(.*?)</span#is

только название:
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<h1.*?<span.*?2989ae.*?>(.*?)</span.*?#is
5. event - 17 Января, 2015 - 14:11:59 - перейти к сообщению
GoDr, большое вам челевоческое спасибо! Подмигивание

А не под кажите как еще спарсить описание товара и ссылку на картинку от товара?
(Добавление)
Картинку на товар удалось спарсить. А вот описание никак не могу. Нахмурился
6. event - 17 Января, 2015 - 17:32:56 - перейти к сообщению
Помогите пожалуйста, а то капец как нужно. Огорчение
7. event - 18 Января, 2015 - 02:15:29 - перейти к сообщению
Кто шарит нормально в регулярках, уделите минутку. Закатив глазки
8. GoDr - 18 Января, 2015 - 08:06:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match("#<h1.*?Цена.*?<span.*?>.*?</span.*?</table>(.*?)</td#s", $str, $tmp);
  2. echo $tmp[1];
  3.  
9. event - 18 Января, 2015 - 11:23:26 - перейти к сообщению
GoDr, спасибо! Подмигивание

 

Powered by ExBB FM 1.0 RC1