LINUX.ORG.RU
ФорумAdmin

Как можно вырезать текст

 


0

2

Есть код вида

<div class="user-summary__about" itemprop="рандомный текст">
        рандомный текст      </div>

И мне нужно как-то достать из 2 строчки этот рандомный текст

Я это решил таким образом. Грепнул текст который оканчивается на </div>$, и дальше чистил оставшийся мусор. Но мне кажется такое себе решение.

Может как-то можно по интереснее это придумать?

К примеру что бы grep забирал еще 2 строчку после найденной строки . Или вырезание текста к примеру

 от <div class="user-summary__about" itemprop="рандомный текст"> до </div>


то бы grep забирал еще 2 строчку после найденной строки

grep 'что-то' -A1 где
man grep
kostik87 ★★★★★
()

Тексты разные бывают?

python + lxml

Zhbert ★★★★★
()
import requests
import re
r = requests.get(u)
print(re.findall(r'<div class="user-summary__about"[^>]*>([\s\S]+?)</div>', r.text))
tz4678_2
()

Это ж микроразметка. Так и гугли schema.org parser для нужного тебе языка.

Tigger ★★★★★
()

Лучше возьми нормальный парсер html

MrClon ★★★★★
()
Ответ на: комментарий от Clockwork

Прочитал по диагонали, это только выхлоп.

Для удаления нужно создать пустую таблицу, в которую складывать куски. У меня был скрипт на флуа, который и парсил и удалял.

Clockwork ★★★★★
()

Рекомендую использовать lua, в ней такие штуки в делаются на раз-два.

s = [[твоя строка]] --далее что-то в духе
m1, m2 = s:match([[<div class="user-summary__about" itemprop="(.-)".->(.-)</div>]])

более того можно пройти по всем совпадениям с помощью gmatch.

AKonia ★★★
()
Последнее исправление: AKonia (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.