Есть HTML разметка, нужно вытащить контент из тега <p>, знаю как сделать 2 регулярными выражениями, можно ли сделать 1, в результате должно быть ["<b>111</b>", "222", "444"]
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)
Форум → Программирование → Python → Опять регулярные выражения
Опять регулярные выражения
-
-
Авг. 7, 2017, 10:20 д.п., спустя 6 часов 37 минут 11 секунд
>>> html "<p class='one'><b>111</b></p><p name='two'>222</p><path>333</path><p>444</p><path class='three'>555</path>" >>> re.findall(r'<p(?: [^>]*)?>(.+?)</p>', html) ['<b>111</b>', '222', '444']
-
Авг. 7, 2017, 3:19 п.п., спустя 4 часа 58 минут 32 секунды
html контент надо через lxml вытаскивать, регулярками html обрабатывать плохая идея. Разве что шаблоны html статичны и им миллионы и нужна скорость. В остальных вариантах надо html парсерами это делать.
Сапожник без сапог
Пожалуйста, авторизуйтесь, чтобы написать комментарий!