Спустя 2 минуты, 57 секунд (21.06.2012 - 20:01) alexbel2404 написал(а):
код выкладывай
Спустя 1 минута, 21 секунда (21.06.2012 - 20:03) Игорь_Vasinsky написал(а):
Цитата |
нужно, чтобы названия и текст сохранялся в базе данных |
ничё не понимаю))) иы пишешь парсер с сторонней библией - а как в БД записи делать не знаешь?
Спустя 54 минуты, 10 секунд (21.06.2012 - 20:57) johniek_comp написал(а):
Игорь_Vasinsky
походу он берет весь контент, и ему нужно его разбить и записать в базу
я когда парсеры делал на simplehtmldom тоже заморачивался, пришлось брать 5 блоков и запросы в цикле писать, другого выхода не было
походу он берет весь контент, и ему нужно его разбить и записать в базу
я когда парсеры делал на simplehtmldom тоже заморачивался, пришлось брать 5 блоков и запросы в цикле писать, другого выхода не было
Спустя 8 минут, 57 секунд (21.06.2012 - 21:06) Игорь_Vasinsky написал(а):
Цитата |
, другого выхода не было |
regexp
![wink.gif](http://phpforum.su/html/emoticons/wink.gif)
Спустя 1 минута, 42 секунды (21.06.2012 - 21:08) johniek_comp написал(а):
Игорь_Vasinsky
я не умею
я не умею
![sad.gif](http://phpforum.su/html/emoticons/sad.gif)
Спустя 2 часа, 30 минут, 24 секунды (21.06.2012 - 23:38) Godod написал(а):
Цитата (johniek_comp @ 21.06.2012 - 17:57) |
Игорь_Vasinsky походу он берет весь контент, и ему нужно его разбить и записать в базу я когда парсеры делал на simplehtmldom тоже заморачивался, пришлось брать 5 блоков и запросы в цикле писать, другого выхода не было |
Вот-вот и я тоже делаю. RegExp... можно использовать только если не одно НО:
<div class="title">
<a href="http://rozetka.com.ua/acer_iconia_smart_black/p192262/">
Acer Iconia Smart S300 Black
</a>
</div>
<p>Экран 4.8" (480x1024, сенсорный) / моноблок / процессор 1 ГГц / камера 8 Мп / Bluetooth 2.1 / Wi-Fi 802.11b/g/n / 512 МБ встроенной памяти + поддержка microSDHC / разъем 3.5 мм / 3G / A-GPS / ОС Android 2.3 (Gingerbread) / 141.7x64.5x13.6 мм, 185 г / черный<br>
</p>
Вот например это мне нужно засунуть в таблицу(отдельно див и отдельно параграф). Но не всегда так идет. Может быть два параграфа идти подряд, а может и нет. Про регулярные я читал, в принципе понимаю, но вот приблизительно как сделать, не понимаю.
Спустя 11 минут, 33 секунды (21.06.2012 - 23:50) Игорь_Vasinsky написал(а):
составить паттерн, смотреть чё как идёт и брать тока нужное.
покажи полный исходник страницы и обозначь что брать нужно.
вообще так пробывал?
покажи полный исходник страницы и обозначь что брать нужно.
вообще так пробывал?
preg_match("#<div class=\"title\">(.*)</div>#iusU", $page, $div);
echo '<pre>'.print_r($div, 1).'</pre>';
preg_match("#</div><p>(.*)</p>#iusU", $page, $p);
echo '<pre>'.print_r($p, 1).'</pre>';
Спустя 17 минут, 41 секунда (22.06.2012 - 00:07) Godod написал(а):
Полную страничку приводить не буду, т.к. слишком большая для форума.
Что нужно брать уже обозначил вверху. Сейчас попробую.
Что нужно брать уже обозначил вверху. Сейчас попробую.
Спустя 13 минут, 24 секунды (22.06.2012 - 00:21) Godod написал(а):
Цитата (Игорь_Vasinsky @ 21.06.2012 - 20:50) |
составить паттерн, смотреть чё как идёт и брать тока нужное. покажи полный исходник страницы и обозначь что брать нужно. вообще так пробывал? preg_match("#<div class=\"title\">(.*)</div>#iusU", $page, $div); |
К сожалению так не выходит. Показывает вложеный тег <a> и во-втором элементе тоже самое. В общем надо все делать через regexp? Составить правильно выражение и потом полученный массив в базу загонять с помощью foreach'a?
Спустя 3 минуты, 35 секунд (22.06.2012 - 00:24) Игорь_Vasinsky написал(а):
да. корректируй паттерны.
Спустя 13 часов, 49 минут, 14 секунд (22.06.2012 - 14:13) Godod написал(а):
Так-с ну начнем) Я вообще впервые пишу регулярное выражение поэтому сильно не пинайтесь, а помогите)
В общем есть такое выражение:
preg_match("#<a href=\"http://rozetka.com.ua/[0-9a-z_]+*/[0-9a-z_]+*/\">(.*)</a>#iusU", $title, $div);
А теперь на словах, чтобы было понятно что мне надо:
Начинаться должно всегда с <a href=\"http://rozetka.com.ua/ потом может идти сколь угодно символов 0-9 или a-z или _ (нижнего подчеркивания), но должен быть хотя бы один символ; после него должен стоять / и снова должно быть сколь угодно символов 0-9 или a-z или _ (нижнего подчеркивания), но должен быть хотя бы один символ. После него обязательно должен быть / \"(экранируем кавычки), (.*)</a>. Собственно в чем я ошибся?) Подскажите
В общем есть такое выражение:
preg_match("#<a href=\"http://rozetka.com.ua/[0-9a-z_]+*/[0-9a-z_]+*/\">(.*)</a>#iusU", $title, $div);
А теперь на словах, чтобы было понятно что мне надо:
Начинаться должно всегда с <a href=\"http://rozetka.com.ua/ потом может идти сколь угодно символов 0-9 или a-z или _ (нижнего подчеркивания), но должен быть хотя бы один символ; после него должен стоять / и снова должно быть сколь угодно символов 0-9 или a-z или _ (нижнего подчеркивания), но должен быть хотя бы один символ. После него обязательно должен быть / \"(экранируем кавычки), (.*)</a>. Собственно в чем я ошибся?) Подскажите
Спустя 1 минута, 52 секунды (22.06.2012 - 14:15) Игорь_Vasinsky написал(а):
preg_match("#<div class=\"title\"><a href=\".*\">(.*)</a>#iusU", $title, $div);
Спустя 21 минута, 44 секунды (22.06.2012 - 14:37) Godod написал(а):
Цитата (Игорь_Vasinsky @ 22.06.2012 - 11:15) |
preg_match("#<div class=\"title\"><a href=\".*\">(.*)</a>#iusU", $title, $div); |
Не работает
![sad.gif](http://phpforum.su/html/emoticons/sad.gif)
Спустя 1 минута, 27 секунд (22.06.2012 - 14:39) Игорь_Vasinsky написал(а):
сайт с которого парсишь в юникоде? дай URL этой страницы
Спустя 6 минут, 38 секунд (22.06.2012 - 14:45) Godod написал(а):
Цитата (Игорь_Vasinsky @ 22.06.2012 - 11:39) |
сайт с которого парсишь в юникоде? дай URL этой страницы |
Спустя 1 час, 58 минут, 25 секунд (22.06.2012 - 16:44) Godod написал(а):
Все. Решил проблему. Сейчас буду в таблицу заносить.
Всем спасибо за помощь.
З.Ы. Правда первую регулярку пришлось убирать...
$preg = $title->find('div.title',0);
if(!$preg) echo "NULL"; else echo "YES";
echo '<pre>'.$preg->plaintext.'</pre>';
preg_match('#<p>(.*)</p>#iusU', $title, $p);
echo '<pre>'.$p[0].'</pre>';
Всем спасибо за помощь.
З.Ы. Правда первую регулярку пришлось убирать...
Спустя 43 минуты, 12 секунд (22.06.2012 - 17:27) Godod написал(а):
Разобрался