Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 7, 2017 03:52:24

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Опять регулярные выражения

Есть HTML разметка, нужно вытащить контент из тега <p>, знаю как сделать 2 регулярными выражениями, можно ли сделать 1, в результате должно быть

 html="<p class='one'><b>111</b></p><p name='two'>222</p><path>333</path><p>444</p><path class='three'>555</path>"
tempTag=[]
tempTag+=re.findall("<p\s.*?>(.*?)</p>", html)
tempTag+=re.findall("<p\s?>(.*?)</p>", html)
print(tempTag)

Офлайн

#2 Авг. 7, 2017 05:55:03

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Опять регулярные выражения

тут получается два уровня вложения, можно через объединение xpath

 from lxml import html
htm="<p class='one'><b>111</b></p><p name='two'>222</p><path>333</path><p>444</p><path class='three'>555</path>"
tree = html.fromstring(htm)
tags  = tree.xpath('//p/b | //p')
out = [t.text for t in tags if t.text]
print(out)

Отредактировано vic57 (Авг. 7, 2017 07:23:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version