作者:一二三八嘎 | 来源:互联网 | 2023-09-24 17:57
您可以使用time.sleep()等待页面显式加载,这可能会得到您想要的最终结果。但是,这并不是最佳实践,可能会导致等待的时间超过加载页面所需的时间。你知道吗
我建议改用Selenium,它有许多与此相关的有用特性;特别是它可以隐式地等待。你知道吗
下面是如何使用Selenium等待计数器加载,而不再等待。你知道吗from selenium import webdriver
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
url = 'https://www.theworldcounts.com/counters/shocking_environmental_facts_and_statistics/world_population_clock_live'
driver = webdriver.Firefox()
driver.get(url)
try:
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//*[@id=\"counters_number_interval_5\"]")))
counter = driver.find_element_by_xpath("//*[@id=\"counters_number_interval_5\"]").text
print(counter)
except TimeoutException:
print("Timed out, couldn't load the page in time")
driver.quit()
您需要安装Selenium,但这就像安装BeautifulSoup一样—只需使用pip install selenium