所以我正在构建我的第一个 webscraper,为体育统计数据做准备,一切都很顺利。我已经启动并运行并收集数据并将其放入 CSV 文件中。然后突然一夜之间它开始抛出错误。它从工作到无法找到所有元素而无需我更改代码中的一个字母。
现在当我运行它时,我只会得到:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:
问题是,我知道该元素存在的事实,我可以在检查页面上看到它并将其重新复制到代码中。
在尝试定位此元素的部分之前,我已添加以下代码:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
xpath_awayteam = str('.//span[@class="teamNameFirstPart teamNameAwayTextFirstPart smallFont"]')
timeout = 15
try:
element_present = EC.presence_of_element_located((By.XPATH, xpath_awayteam))
WebDriverWait(driver, timeout).until(element_present)
print("Page fully loaded")
except TimeoutException:
print ("Timed out waiting for page to load")
并且在出现错误之前,我在控制台中看到了页面已完全加载,因此我认为问题不在于页面未完全加载。
在此过程中我遇到了许多错误,但我目前感觉被彻底打败了,无法弄清楚哪里出了问题。任何帮助表示赞赏!