若该页面没有固定底部怎么办
时间: 2023-08-16 12:06:35 浏览: 37
如果页面没有固定底部,你可以通过判断滚动条的位置来确定是否继续滚动加载内容。以下是一个示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 创建一个浏览器实例
driver = webdriver.Chrome()
# 打开目标页面
driver.get('https://example.com')
# 设置一个最大等待时间,用于等待页面加载完成
wait = WebDriverWait(driver, 10)
# 记录当前滚动条的位置
last_scroll_position = 0
while True:
# 模拟滚动到页面底部的操作
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 等待新内容加载完成
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '你要抓取的元素的CSS选择器')))
# 在这里进行你的数据抓取操作,例如获取元素的文本或属性值等
# 获取当前滚动条的位置
current_scroll_position = driver.execute_script("return window.scrollY")
# 判断是否滚动到了页面底部,如果滚动位置没有变化则结束循环
if current_scroll_position == last_scroll_position:
break
# 更新滚动条位置为当前位置
last_scroll_position = current_scroll_position
# 关闭浏览器实例
driver.quit()
```
在上述代码中,我们使用 `last_scroll_position` 变量来记录上一次滚动的位置,通过比较当前滚动位置与上一次位置是否相同来判断是否滚动到了页面底部。如果滚动位置没有变化,说明已经到达页面底部,可以结束循环并关闭浏览器实例。
请将上述代码中的 `'https://example.com'` 替换为你要抓取的目标网页地址,以及将 `'你要抓取的元素的CSS选择器'` 替换为你要抓取的具体元素的 CSS 选择器。在每次滚动加载后,你可以在注释的位置编写你自己的数据抓取逻辑。