03.01.2022, 02:06 | #31 |
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
Re: снова я сосвоим парсингом
а бывает ли такое чудо чтобы вырезать последний абзац?
ну то есть последний тег <p></p> и его содержимое? |
03.01.2022, 05:13 | #32 |
anonado.ru
Профессор
Регистрация: 22.06.2020
Адрес: Живу у себя дома
Сообщений: 676
Сказал(а) спасибо: 74
Получил(а) "Спасибо": 288
Нарушения: 0/0 (0)
Репутация: 256629
|
Re: снова я сосвоим парсингом
seokotov, да.
самый простой вариант кратко: - вырезаешь все - суешь в переменную - находишь в "ней" последний ( ....) - и ... |
03.01.2022, 12:19 | #33 | |
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
Re: снова я сосвоим парсингом
Цитата:
Код:
@INLINE {$news_content | preg_replace : '(<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>)iu'} |
|
03.01.2022, 14:09 | #34 | |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
Re: снова я сосвоим парсингом
Цитата:
У тебя этот последний абзац p он внутри div-ов? (дивы-то удаляются у тебя полностью). Если нет, то используй отрицание поиска, вот так будет: Код:
'%<p(?!.*<p).*|<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>%siu' Только знаками процента или слэшами. И обрати внимание на ключи - добавлен s - это воспринимает весь текст как одну строку, уже без разделений на новые строки (иначе отрицание сложным будет если так не сделать). В принципе ты можешь записать и так: Код:
'%<p(?![\S\s]*<p)[\S\s]*|<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>%iu' |
|
Сказали спасибо: |
03.01.2022, 14:33 | #35 |
anonado.ru
Профессор
Регистрация: 22.06.2020
Адрес: Живу у себя дома
Сообщений: 676
Сказал(а) спасибо: 74
Получил(а) "Спасибо": 288
Нарушения: 0/0 (0)
Репутация: 256629
|
Re: снова я сосвоим парсингом
|
03.01.2022, 20:06 | #36 | |
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
Re: снова я сосвоим парсингом
Цитата:
дивы в конце отпадают и так, а вот в концеполучается два абзаца один пустой и один который надо почикать Код:
.... <p>абзац который надо удалить</p> <p></p> <div class="1"></div> <div class="1"></div> по скорости и частоте запросов не так много...раз в 6 часов выборку из 10 ресурсов гребет |
|
04.01.2022, 01:52 | #37 |
На серче с 01.11.2011
Аспирант
Регистрация: 02.07.2020
Сообщений: 68
Сказал(а) спасибо: 186
Получил(а) "Спасибо": 56
Нарушения: 0/0 (0)
Репутация: 2613
|
Re: снова я сосвоим парсингом
Вот так не получается?
$html = new DOMDocument(); $html->loadHTML($content); $iframe = $html->getElementsByTagName('iframe'); $iframe->getAttribute('src'); |
04.01.2022, 15:10 | #38 |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
Re: снова я сосвоим парсингом
|
Сказали спасибо: |
04.01.2022, 19:24 | #39 |
se ксенофоб
Доцент
Регистрация: 14.07.2020
Адрес: Севастополь, Россия
Сообщений: 173
Сказал(а) спасибо: 127
Получил(а) "Спасибо": 33
Нарушения: 0/0 (0)
Репутация: 28076
|
Re: снова я сосвоим парсингом
|
06.01.2022, 11:42 | #40 | |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
Re: снова я сосвоим парсингом
Цитата:
Сама процедура отрицания в регулярках очень опасна, может так нагрузить проц, что он ошалеет, но такие простые вложения можно юзать. |
|
Сказали спасибо: |