如何使用 selenium 在 python 中获取 Web 属性的特定部分?
how do I get a Specific part of a web attribute in python with selenium?
我需要将 window.open ('/echipa/lok-moscova/Sjs63WfK') 之后的那部分作为字符串
从这个带有硒的网络元素,我真的不知道该怎么做。如果我能做到的话。
<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
您需要找到硒中的元素。最简单的方法是通过id,你可以通过很多东西来搜索(查看更多here)。
linkElement = driver.findElement(By.id("id"))
接下来,您可以将属性提取为字符串
text = linkElement.getAttribute("onclick");
并删除过时的部分
text = text.replace("window.open(", "").replace(")", "")
那就是你的 "/echipa/lok-moscova/Sjs63WfK"
这里是 BeautifulSoup 的示例(您可以从 selenium 页面源创建 soup 对象):
import re
from bs4 import BeautifulSoup
txt = '''
<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
'''
soup = BeautifulSoup(txt, 'html.parser')
link = soup.select_one('a.participant-imglink[onclick]')
url = re.search(r"window\.open\('(.*?)'\)", link['onclick']).group(1)
print(url)
打印:
/echipa/lok-moscova/Sjs63WfK
我需要将 window.open ('/echipa/lok-moscova/Sjs63WfK') 之后的那部分作为字符串 从这个带有硒的网络元素,我真的不知道该怎么做。如果我能做到的话。
<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
您需要找到硒中的元素。最简单的方法是通过id,你可以通过很多东西来搜索(查看更多here)。
linkElement = driver.findElement(By.id("id"))
接下来,您可以将属性提取为字符串
text = linkElement.getAttribute("onclick");
并删除过时的部分
text = text.replace("window.open(", "").replace(")", "")
那就是你的 "/echipa/lok-moscova/Sjs63WfK"
这里是 BeautifulSoup 的示例(您可以从 selenium 页面源创建 soup 对象):
import re
from bs4 import BeautifulSoup
txt = '''
<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
'''
soup = BeautifulSoup(txt, 'html.parser')
link = soup.select_one('a.participant-imglink[onclick]')
url = re.search(r"window\.open\('(.*?)'\)", link['onclick']).group(1)
print(url)
打印:
/echipa/lok-moscova/Sjs63WfK