微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Python中使用正则表达式从文件底部读取HTML标记之间?

如何解决如何在Python中使用正则表达式从文件底部读取HTML标记之间?

我有一个HTML响应,我需要获取页面上最后<title>标记间的数据,有没有办法在Python中使用regex或在Python中使用其他工具?>

例如

<title>abc
</title>

<title>def
</title>

应返回def。

解决方法

您不应该使用正则表达式来解析HTML,因为大多数情况下效率低下且难以阅读。如果您没有其他选择,则Regex应该是最后的选择。检查here了解更多信息。

非常感谢有许多BeautifulSoup这样的Python HTML解析器。

使用BeautifulSoup,您可以使用以下代码获取最后一个标题标签:

last_title = soup.find_all('title')[-1].text.replace('\n','')
,

使用<title>\s*([\s\S]+?)\s*</title>作为findall作为正则表达式(从标题去除开头和结尾的空白),并获取最后出现的内容:

Regex Demo

import re

text = """abc
<title>abc
</title>
def
ghi
<title>def
</title>
jkl
"""

tags = re.findall(r'<title>\s*([\s\S]+?)\s*</title>',text)
print(tags[-1]) # the last one

打印:

def

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。