首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium提取隐藏内容的播放器的权重

如何使用Selenium提取隐藏内容的播放器的权重
EN

Stack Overflow用户
提问于 2022-04-29 05:08:44
回答 2查看 75关注 0票数 0

我一直试图得到这个球员的重量,但它只是可见于检查元素,而不是在网站上,当我打印下面,我得到一个空白的结果,谁能帮我这个吗?

法典审判:

代码语言:javascript
复制
import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

s = Service('/Users/karim/Desktop/chromedriver-2')
driver = webdriver.Chrome(service=s)
url = 'https://www.premierleague.com/players/71432/Rayan-A%C3%AFt-Nouri/overview'
driver.get(url)

g = driver.find_element(By.XPATH, "//li[@class='u-hide']")
print(g.text)
EN

回答 2

Stack Overflow用户

发布于 2022-04-29 06:06:56

您需要执行以下操作:

  1. 单击“接受饼干”按钮,
  2. 单击右上角的“关闭”按钮。

代码:

代码语言:javascript
复制
driver.maximize_window()
wait = WebDriverWait(driver, 30)

driver.get("https://www.premierleague.com/players/71432/Rayan-A%C3%AFt-Nouri/overview")

try:
    wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Accept All Cookies']"))).click()
    print("clicked on accept cookies button")
    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#advertClose"))).click()
except:
    pass

#print(wait.until(EC.presence_of_element_located((By.XPATH, "//li[@class='u-hide']"))).get_attribute('innerText'))
print(wait.until(EC.presence_of_element_located((By.XPATH, "//li[@class='u-hide']//div[@class='info']"))).get_attribute('innerText'))

导入:

代码语言:javascript
复制
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

输出:

代码语言:javascript
复制
clicked on accept cookies button
70kg

Process finished with exit code 0
票数 1
EN

Stack Overflow用户

发布于 2022-04-29 23:34:38

运动员的体重在以下范围内:

代码语言:javascript
复制
<div class="info">70kg</div>

它的祖先是:

代码语言:javascript
复制
<li class="u-hide">
          <div class="label">Weight</div>
          <div class="info">70kg</div>
    </li>

其中<li>的类是u-hide

由于元素是一个隐藏的元素,所以在这里使用text属性是行不通的,因此您可以提取innerHTMLinnerText

解决方案

若要打印权重的值,可以使用以下任一

使用

  • innerHTML

打印( "//li@class='u-hide'//div@class='info'").get_attribute('innerHTML')),By.XPATH,driver.find_element)

使用

  • innerText

打印( "//li@class='u-hide'//div@class='info'").get_attribute('innerText')),By.XPATH,driver.find_element)

诱导WebDriverWait

使用

  • innerHTML

打印( 20).until(EC.presence_of_element_located((By.XPATH,"//li@class='u-hide'//div@class='info'"))).get_attribute('innerHTML')),驱动程序,WebDriverWait)

使用

  • innerText

打印( 20).until(EC.presence_of_element_located((By.XPATH,"//li@class='u-hide'//div@class='info'"))).get_attribute('innerText')),驱动程序,WebDriverWait)

  • 控制台输出:

70公斤

  • Note:您必须添加以下导入:

从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72053087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档