[英]Regex with HTML tags and escaped characters
我有这段文字:
<h5 class="subblocksubhead subsubsectionhead first"><b>Messaggi inseriti</b></h5>
<dl class="blockrow stats">
<dt><b>Messaggi inseriti</b></dt>
<dd> 81</dd>
</dl>
<dl class="blockrow stats">
<dt>Media dei messaggi giornalieri</dt>
<dd> 0.02</dd>
</dl>
并且我正在尝试使用以下代码提取" 81"
:
regex_message_sent_num=r'Messaggi inseriti<.+>\n\t\t<.+?>(\s.+)<.+?>'
pattern_message_sent_num=re.compile(regex_message_sent_num)
results_message_sent_num=re.findall(pattern_message_sent_num,html_text)
我总是得到一个空列表作为输出,而当我在这里测试代码时,我得到了正确的提取。
知道我在做什么错吗? HTML来自一个网页,我正在尝试从中提取一些可见的数据作为练习。 我在从chrome浏览器保存的HTML文本上测试了正则表达式。
请改用HTML Parser,例如BeautifulSoup
。
使用文本搜索和find_next_sibling()
方法 :
from bs4 import BeautifulSoup
data = """
<div>
<dl class="blockrow stats">
<dt><b>Messaggi inseriti</b></dt>
<dd> 81</dd>
</dl>
<dl class="blockrow stats">
<dt>Media dei messaggi giornalieri</dt>
<dd> 0.02</dd>
</dl>
</div>"""
soup = BeautifulSoup(data, "html.parser")
label = soup.find("dt", text="Messaggi inseriti")
print(label.find_next_sibling("dd").get_text(strip=True))
打印81
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.