我正在尝试为现有的 itertags 制作一个包装函数:https ://github.com/streamlink/streamlink/blob/master/src/streamlink/plugin/api/utils.py#L16
目前我有这个:
def itertags_wrapper(html, tag, attrs=None, ret=False):
try:
result = list(itertags(html, tag))
if isinstance(attrs, dict):
attrs = list(iteritems(attrs))
result = [i for i in result if any([a for a in attrs if a in list(iteritems(i.attributes))])]
if ret:
# noinspection PyTypeChecker
result = [i.attributes[ret] for i in result if ret in i.attributes]
except Exception:
result = []
return result
现在它返回包含与 attrs 中完全相同的键值对的标签,但是我如何在正则表达式模式中获得该对的值并扩大可能的结果?
PS iteritems 首先通过“compat”模块在 python 2 和 3 上工作。