【问题标题】:how do I get a Specific part of a web attribute in python with selenium?如何使用 selenium 在 python 中获取 web 属性的特定部分?
【发布时间】:2021-02-16 13:42:43
【问题描述】:
我需要在 window.open ('/echipa/lok-moscova/Sjs63WfK') 之后获取该部分作为字符串
从这个带有硒的网络元素中,我真的不知道该怎么做。如果我能做到的话。
<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
【问题讨论】:
标签:
python
selenium-webdriver
href
【解决方案1】:
你需要在 selenium 中找到元素。最简单的方法是通过 id,你可以通过很多东西进行搜索(查看更多here)。
linkElement = driver.findElement(By.id("id"))
接下来,您可以将属性提取为字符串
text = linkElement.getAttribute("onclick");
并删除过时的部分
text = text.replace("window.open(", "").replace(")", "")
那就是你的"/echipa/lok-moscova/Sjs63WfK"
【解决方案2】:
这是 BeautifulSoup 的示例(您可以从 selenium 页面源创建汤对象):
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