在Python中提取一些HTML标记值

2024-09-24 22:27:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Python中使用正则表达式获取嵌套的<b>HTML标记的值?在

<a href="/model.xml?hid=90971&amp;modelid=4636873&amp;show-uid=678650012772883921" class="b-offers__name"><b>LG</b> X110</a>

# => LG X110

Tags: name标记uidmodelhtmlshowxmlclass
3条回答

您的问题很难理解,但是从给定的输出示例来看,您似乎希望从输入文本中除去<和{}中的所有内容。可以这样做:

import re
input_text = '<a bob>i <b>c</b></a>'
output_text = re.sub('<[^>]*>', '', input_text)
print output_text

这给了你:

^{pr2}$

如果这不是你想要的,请澄清。在

请注意,解析XML的正则表达式方法非常脆弱。例如,上面的示例将在输入<a name="b>c">hey</a>上中断。(>是属性值中的有效字符:see XML specs

不要使用正则表达式解析HTML。使用像BeautifulSoup这样的HTML解析器。看看这有多简单:

from BeautifulSoup import BeautifulSoup
html = r'<a href="removed because it was too long"><b>LG</b> X110</a>'
soup = BeautifulSoup(html)
print ''.join(soup.findAll(text=True))
# LG X110

你不会的

正则表达式不太适合处理HTML的嵌套结构。请改用HTML parser。在

相关问题 更多 >