mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
attr('href')增加处理javascript、mailto、#功能
This commit is contained in:
parent
7d02f81d7e
commit
6d5b9b019d
@ -106,12 +106,20 @@ class SessionElement(DrissionElement):
|
|||||||
if attr == 'href':
|
if attr == 'href':
|
||||||
# 如直接获取attr只能获取相对地址
|
# 如直接获取attr只能获取相对地址
|
||||||
link = self._inner_ele.attrs['href']
|
link = self._inner_ele.attrs['href']
|
||||||
if link.startswith('?'): # 避免当相对URL以?开头时requests-html丢失参数的bug
|
if link.startswith(('javascript:', 'mailto:')):
|
||||||
|
return link
|
||||||
|
elif link.startswith('#'):
|
||||||
|
if '#' in self.inner_ele.url:
|
||||||
|
return re.sub(r'#.*', link, self.inner_ele.url)
|
||||||
|
else:
|
||||||
|
return f'{self.inner_ele.url}{link}'
|
||||||
|
elif link.startswith('?'): # 避免当相对URL以?开头时requests-html丢失参数的bug
|
||||||
if '?' in self.inner_ele.url:
|
if '?' in self.inner_ele.url:
|
||||||
return re.sub(r'\?.*', link, self.inner_ele.url)
|
return re.sub(r'\?.*', link, self.inner_ele.url)
|
||||||
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':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user