【playwright 如何实现滚动到最底部】

playwright 如何实现滚动到最底部

依赖安装

pip install loguru
pip install playwright
playwright install

代码示例

本文借助qq音乐,歌手页面。会存在滚动加载问题


from playwright.sync_api import sync_playwright
from loguru import logger

# 监听页面滚动事件


if __name__ == '__main__':
    with sync_playwright() as playwright:
        browser = playwright.chromium.launch(headless=False)  # 启动Chromium浏览器,设置headless=False可以看到浏览器操作
        page = browser.new_page()  # 创建一个页面
        page.goto("https://y.qq.com/n/ryqq/singer_list")  # 打开网页

        # 获取页面初始的滚动高度
        scroll_height = page.evaluate("() => document.documentElement.scrollHeight")
        scroll_position = page.evaluate("() => window.scrollY")
        
        # 滚动到底部
        while True:
            # 向下滚动一定距离,这里以页面高度的2倍为例
            page.evaluate("() => window.scrollTo(0, window.scrollY + window.innerHeight * 2)")

            # 等待页面加载
            page.wait_for_timeout(1000)

            # 再次获取滚动高度和当前滚动位置
            new_scroll_height = page.evaluate("() => document.documentElement.scrollHeight")
            new_scroll_position = page.evaluate("() => window.scrollY")

            # 如果滚动高度没有变化,或者当前滚动位置加上视口高度接近页面总高度,则认为已滚动到底部
            if new_scroll_height == scroll_height or new_scroll_position + 100 >= new_scroll_height:
                logger.info("已滚动到页面底部")
                break

            # 更新滚动高度和滚动位置
            scroll_height = new_scroll_height
            scroll_position = new_scroll_position
        logger.info("结束")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

享受 生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值