python - 在python中使用正则表达式从 anchor 标记中提取数据

标签 python html regex parsing

我正在尝试使用 regex 从网页中提取超链接在Python中。

假设我的文本字符串是:

text = '<a href="/status/ALL">ALL</a></td>/n<a href="/status/ASSIGN">ASSIGN</a></td>'

我想提取 ALL 和 ASSIGN, 我正在使用这个正则表达式:

re.findall(r'<a href=.*>(\w+)</a>', text, re.DOTALL)

这只是返回 ASSIGN。

有人可以帮我指出正则表达式中的错误吗?我对这个主题真的很陌生。

最佳答案

您正在使用正则表达式,并且将 XML 与此类表达式匹配得到 too complicated, too fast .

请不要为难自己,而是使用 HTML 解析器,Python 有多种可供选择:

元素树示例:

from xml.etree import ElementTree

tree = ElementTree.parse('filename.html')
for elem in tree.findall('a'):
    print ElementTree.tostring(elem)

关于python - 在python中使用正则表达式从 anchor 标记中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268365/

相关文章:

python - 单线程 C 程序中 Py_Finalize (python 2.5) 的段错误

python - 使用 rpy2 eval 表达式的指导

html - 如何停止重复图像

python - 欧元金额的正则表达式

ruby - 使用 ruby​​ 正则表达式验证字符串?

python - 如何在 Python Flask 应用程序中存储环境变量?

python - PyCharm 中 Unresolved reference 问题

html - 如何摆脱包装内多余的空白

javascript - 在 LI 内时,Slidetoggle 无法正常工作

regex - 字符串的重复、交错副本的正则表达式?