这种情况通常是因为被查找的元素并不是静态载入的,而是通过ajax动态载入的。因此我们需要等待页面元素完全载入后再进行解析。使用selenium库中的WebDriverWait可以等待某个元素加载完成后继续执行。以下是一个示例代码:
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 bs4 import BeautifulSoup
# 使用selenium的webdriver打开网页
driver = webdriver.Chrome()
driver.get("https://example.com")
# 等待某个元素载入完成
element_locator = (By.CSS_SELECTOR, "div.container")
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located(element_locator))
# 将网页源代码输入BeautifulSoup解析
soup = BeautifulSoup(driver.page_source, 'html.parser')
elements = soup.findAll("a")