查找包含`datasuperid=“picturelink”的元素的最佳方法?

2024-09-23 22:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我要查找的元素如下所示:

<a href="pic:/82eu92e/iwjd/" data-superid="picture-link">

以前我在页面中找到了所有href,然后通过查找文本为pic:的href找到了正确的href,但我不能再这样做了,因为有些页面具有滚动库,导致元素过时


Tags: 文本元素datalink页面hrefpicturepic
3条回答

您可以按属性进行筛选:

driver.find_element_by_xpath('//a[@data-superid="picture-link"]')

关于滚动部分,here是之前提出的一个可以帮助您的问题

你可以试试beautifulsoup + selenium,比如:

from bs4 import BeautifulSoup

text = '''<a href="pic:/82eu92e/iwjd/" data-superid="picture-link">'''
# Under your circumstance, you need to use:
# text = driver.page_source
soup = BeautifulSoup(text, "html.parser")
print(soup.find("a", attrs={"data-superid":"picture-link"}))

结果:

<a data-superid="picture-link" href="pic:/82eu92e/iwjd/"></a>

要使用data-superid="picture-link"提取href值,请使用以下css选择器或xpath

links=driver.find_elements_by_css_selector("a[data-superid='picture-link'][href]")
for link in links:
    print(link.get_attribute("href"))

links=driver.find_elements_by_xpath("//a[@data-superid='picture-link'][@href]")
for link in links:
    print(link.get_attribute("href"))

相关问题 更多 >