You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python+Selenium无法在melkemun.com页面滚动加载更多帖子

解决Selenium无法在melkemun.com滚动加载更多帖子的问题

原代码driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")失效,通常是以下几种原因,对应解决方案如下:

1. 页面滚动容器不是body

很多现代网站会将可滚动内容放在独立的div容器中,而非body标签。此时需要先定位该滚动容器,再对其执行滚动操作:

from selenium.webdriver.common.by import By

# 定位页面的滚动容器(需替换为实际容器的CSS选择器/XPath)
scroll_container = driver.find_element(By.CSS_SELECTOR, "div.scrollable-container")
# 滚动到容器底部
driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight;", scroll_container)

2. 未等待滚动后的内容加载

滚动后直接结束操作,新内容还未渲染完成,导致看似没有加载更多。需添加显式等待,确保新内容加载后再继续:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

# 循环滚动加载(可按需调整循环次数)
for _ in range(5):
    # 执行滚动
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # 等待新帖子元素出现(替换为实际帖子的选择器)
    try:
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, ".post-item:last-child"))
        )
    except:
        # 无更多内容时退出循环
        break
    # 可选:给页面额外的加载缓冲时间
    time.sleep(1)

3. 瞬间滚动被网站拦截

部分网站会检测异常滚动行为,瞬间滚到底部可能被判定为非人类操作。可模拟渐进式滚动,分多次滚动到页面底部:

import time

last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    # 每次滚动500像素
    driver.execute_script("window.scrollBy(0, 500);")
    # 等待内容加载
    time.sleep(2)
    new_height = driver.execute_script("return document.body.scrollHeight")
    # 高度不再变化说明已加载完所有内容
    if new_height == last_height:
        break
    last_height = new_height

4. 帖子内容在iframe中

若帖子嵌入在iframe内,需先切换到iframe上下文再执行滚动:

from selenium.webdriver.common.by import By

# 定位iframe(替换为实际iframe的选择器)
iframe = driver.find_element(By.CSS_SELECTOR, "iframe.post-frame")
driver.switch_to.frame(iframe)

# 执行滚动操作
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 操作完成后切回主文档
driver.switch_to.default_content()

内容的提问来源于stack exchange,提问作者soheil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:30:42