为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2023-09-19 14:55:53
我有一个 HTML 响应,我需要获取<title>页面上最后一个标签之间的数据,有没有办法可以使用 Python 中的正则表达式或使用 Python 中的其他工具来完成此操作?例如。<title>abc</title><title>def</title>应该返回 def。
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

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

值得庆幸的是,有很多适用于 Python 的 HTML 解析器,例如BeautifulSoup。

使用 BeautifulSoup 你可以获得最后一个标题标签:

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


查看完整回答
反对 回复 2023-09-19
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

用作<title>\s*([\s\S]+?)\s*</title>正则表达式(从标题中去除前导和尾随空格)并findall获取最后一次出现的位置:

正则表达式演示

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


查看完整回答
反对 回复 2023-09-19
  • 2 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信