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