【发布时间】:2016-08-13 15:52:36
【问题描述】:
我有这段文字:
<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)
我总是得到一个空列表作为输出,而当我测试代码 here 时,我得到了正确的提取。
知道我做错了什么吗? HTML 来自一个网页,我试图从中提取一些可见数据作为练习。我在从 chrome 浏览器保存的 HTML 文本上测试了正则表达式。
【问题讨论】:
-
“知道我做错了什么吗?” - 是的!您正在尝试parse HTML with regex。使用实际的 HTML 解析器、Beautiful Soup 或其他东西。
-
感谢您的建议,我会使用您建议的工具。