есть:
<div class="news" >
<b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
<b>Год выхода</b>: 2011<br/>
<b>Жанр</b> : драма, биография<br/>
<b>Режиссер</b>: Петр Буслов<br/>
<b>В ролях:</b> Оксана Акиньшина, Сергей Безруков, Андрей Смоляков, Иван Ургант, Максим Леонидов, Андрей Панин, Владимир Ильин, Дмитрий Астрахан, Анна Ардова, Владимир Меньшов<br/>
<b>Выпущено</b>: Россия, Дирекция Кино<br/>
<b>Продолжительность</b>: 02:07:51<br/>
<b>Перевод</b>: Оригинал<br /><br/>
<b>Качество</b>: TS<br/>
<b>Размер</b>: 1.37 Gb<br/><br/>
<b>О фильме</b>: Действие фильма разворачивается в 1979 году, когда на одном из концертов Высоцкому становится плохо с сердцем. Он переживает клиническую смерть.
</div>
мне нужно в разные переменные занести название фильма, Жанр...
кто знает как это реализовать, js/jquery/php неважно
Контент менять нельзя!
Спустя 1 минута, 43 секунды (4.12.2011 - 19:30) Игорь_Vasinsky написал(а):
simple php dom те в помощь
Спустя 43 секунды (4.12.2011 - 19:31) bulgakov написал(а):
Гм, ну тогда будьте добры скажите сумму за работу?
Спустя 9 минут, 45 секунд (4.12.2011 - 19:40) kuzroman написал(а):
Цитата (Игорь_Vasinsky @ 4.12.2011 - 16:30) |
simple php dom те в помощь ;) |
Да собственно с DOM я знаком, мне конструкция сего html немного мешает, вот если бы описания были бы тоже в каком теге, то былобы проще, например:
<b>Жанр</b><div>Боевик</div>
в jquery выдернул бы так
$('.news b').each(function(){
if( $(this).text()=='Фильм' ) alert($(this).next().text())
});
А как сделать без тега, непойму.
Спустя 1 минута, 33 секунды (4.12.2011 - 19:42) kuzroman написал(а):
Цитата (bulgakov @ 4.12.2011 - 16:31) |
Гм, ну тогда будьте добры скажите сумму за работу? |
Миллион, достаточно?
Я не решения, а совет прошу.
Спустя 4 минуты, 7 секунд (4.12.2011 - 19:46) Игорь_Vasinsky написал(а):
Да тут много то не надо
ты выдерни текст из div class="news"
все строки разбиваешь, разделитель <br/>
<b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
строки будут такие
<b>Фильм</b> : Высоцкий. Спасибо, что живой
видишь как разделить можно?потом тока <b> вырежешь
всё это в цикле, данные пихаешь в массив
ты выдерни текст из div class="news"
все строки разбиваешь, разделитель <br/>
<b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
строки будут такие
<b>Фильм</b> : Высоцкий. Спасибо, что живой
видишь как разделить можно?потом тока <b> вырежешь
всё это в цикле, данные пихаешь в массив
Спустя 1 минута, 5 секунд (4.12.2011 - 19:47) bulgakov написал(а):
Ну если совета, то присмотритесь все таки к simplexml
Спустя 58 минут, 23 секунды (4.12.2011 - 20:45) alexbel2404 написал(а):
все эти библиотеки жрут нереально много оперы, особенно phpQuery) я все парсеры на регулярках делаю)
Спустя 18 минут, 37 секунд (4.12.2011 - 21:04) Игорь_Vasinsky написал(а):
alexbel2404
согласен, я поэтому 2й вариант ещё предложил
согласен, я поэтому 2й вариант ещё предложил
Спустя 1 час, 40 минут, 34 секунды (4.12.2011 - 22:45) alexbel2404 написал(а):
как-то делал с помощью phpQuery парсер выдачи гугла, так после парсинга 10 страниц улетало 1гб оперы) не знаю даже, для каких целей делали эту либу)
Спустя 11 часов, 49 минут, 10 секунд (5.12.2011 - 10:34) kuzroman написал(а):
спасибо всем за советы, сделал, с помощью библиотеки cURL, и jquery
Спустя 1 минута, 47 секунд (5.12.2011 - 10:36) kuzroman написал(а):
на jquery выглядит так
var resArr = new Array();
$('.news').children('div[id]').each(function (n){
resArr[n] = {};
$(this).children('b').each(function (){
resArr[n][$(this).text()] = $(this.nextSibling).text().replace(/\s*:\s*/, '');
});
});
Спустя 3 часа, 47 минут, 18 секунд (5.12.2011 - 14:23) kuzroman написал(а):
Парсю страницы в цикле, заганяю все в curl, от туда jquery нахожу нужные элементы и через ajax загоняю в базу.
в общем как то длинно кажется, но на деле не очень.
А озу Opera кушает также. Особых потерь не заметил.
в общем как то длинно кажется, но на деле не очень.
А озу Opera кушает также. Особых потерь не заметил.
Спустя 1 час, 17 минут, 6 секунд (5.12.2011 - 15:40) killer8080 написал(а):
В одну регулярку у меня не получилось
$text = '
<div class="news" >
<b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
<b>Год выхода</b>: 2011<br/>
<b>Жанр</b> : драма, биография<br/>
<b>Режиссер</b>: Петр Буслов<br/>
<b>В ролях:</b> Оксана Акиньшина, Сергей Безруков, Андрей Смоляков, Иван Ургант, Максим Леонидов, Андрей Панин, Владимир Ильин, Дмитрий Астрахан, Анна Ардова, Владимир Меньшов<br/>
<b>Выпущено</b>: Россия, Дирекция Кино<br/>
<b>Продолжительность</b>: 02:07:51<br/>
<b>Перевод</b>: Оригинал<br /><br/>
<b>Качество</b>: TS<br/>
<b>Размер</b>: 1.37 Gb<br/><br/>
<b>О фильме</b>: Действие фильма разворачивается в 1979 году, когда на одном из концертов Высоцкому становится плохо с сердцем. Он переживает клиническую смерть.
</div>
';
preg_match('#<div\s*class="news"\s*>(.*)</div>#isUu', $text, $match);
$text = $match[1];
preg_match_all('#\s*<b>(.*)\s*(?::\s*</\s*b>\s*|\s*</\s*b>\s*:)\s*(.*)\s*(?:<|$)#iuUs', $text, $match);
$out = array_combine($match[1], array_map('trim', $match[2]));
echo '<pre>'.htmlspecialchars(print_r($out, 1)).'</pre>';
Спустя 1 час, 12 минут (5.12.2011 - 16:52) kuzroman написал(а):
ох завидую я тем кто в регулярка разобрался, для меня это до сих пор головняк.
Спустя 5 минут, 26 секунд (5.12.2011 - 16:57) killer8080 написал(а):
kuzroman
да там не все так страшно, как кажется, главное в суть въехать
да там не все так страшно, как кажется, главное в суть въехать
Спустя 3 часа, 28 минут, 56 секунд (5.12.2011 - 20:26) alexbel2404 написал(а):
http://gskinner.com/RegExr/ тут можно учиться методом тыка)
_____________
kuzroman@list.ru