我正在尝试使用 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 有多种可供选择:
- ElementTree是标准库的一部分
- BeautifulSoup是一个流行的第三方库
- lxml是一个快速且功能丰富的基于 C 的库。
元素树示例:
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/