attrs调用attr()来获取属性,以返回处理过的属性,如绝对url

优化attr()获取class的代码
This commit is contained in:
g1879 2020-06-03 10:38:13 +08:00
parent 65c5071464
commit 53cccec49a

View File

@ -25,11 +25,10 @@ class SessionElement(DrissionElement):
@property
def attrs(self) -> dict:
"""以字典格式返回元素所有属性的名称和值"""
attrs = dict(self.inner_ele.attrs)
for attr in ['class', 'rel']:
if attr in attrs:
attrs[attr] = ' '.join(attrs[attr])
"""返回元素所有属性及值"""
attrs = dict()
for attr in self.inner_ele.attrs:
attrs[attr] = self.attr(attr)
return attrs
@property
@ -119,17 +118,12 @@ class SessionElement(DrissionElement):
else:
return f'{self.inner_ele.url}{link}'
else:
self._inner_ele.skip_anchors = False
for link in self._inner_ele.absolute_links:
return link
elif attr == 'src':
return self._inner_ele._make_absolute(self._inner_ele.attrs['src'])
elif attr == 'class':
class_str = ''
for key, i in enumerate(self._inner_ele.attrs['class']):
class_str += ' ' if key > 0 else ''
class_str += i
return class_str
return ' '.join(self._inner_ele.attrs['class'])
elif attr == 'text':
return self.text
else: