❤️不到100行把流式热榜截屏合成一张?爬虫终极秘诀【建议收藏】❤️

本文介绍了如何使用Python爬虫处理流式加载页面,通过持续滚动并捕获页面高度,实现动态内容的完全加载。核心代码利用Selenium模拟浏览器滚动,结合Numpy和Pillow完成截图拼接,最终得到完整页面的截图。适用于CSDN热榜等动态加载内容的网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫如何应对流式加载页面,这100行代码请收藏!

前篇学委弄了一篇把网站拍照留存,发现截屏的页面是一个流式页面,就截了一部分怎么办?

所谓的流式加载的页面,页面高度是不断变长的,这种页面无法一次加载就获取到整个页面的真实高度!
身边有没有哪些流式加载的页面呢? 比如 CSDN的热榜 没跑了。

这种流式加载窗口就开打开水龙头一样,内容哗啦啦的展示出来,关掉了就不加载。

经常冲榜的朋友就知道,打开热榜,发现就几条Top 5,需要浏览器往下拉,才会继续动态加载更多内容出来。一直往下拉,慢慢拉整个热榜就出来了。

本文实现流程概括如下图:
在这里插入图片描述

第一个问题:这这个获取流式窗口高度的操作怎么实现呢?

爬虫怎么开始设置,在前一篇文章,请自行阅读。

下面直击重点,我们怎么样获取动态流式内容窗口的高度。

'''
雷学委应对流式页面的爬虫解决秘诀
核心代码:
'''
def resolve_height(driver, pageh_factor=5):
    js = "return action=document.body.scrollHeight"
    height = 0
    page_height = driver.execute_script(js)
    ref_pageh = int(page_height * pageh_factor)
    step = 150 
    max_count = 15 
    count = 0 
    while count < max_count and height < page_height:
        #scroll down to page bottom
        for i in range(height, ref_pageh, step):
            count+=1
            vh = i
            slowjs='window.scrollTo(0, {})'.format(vh)
            print('exec js: %s' % slowjs
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雷学委

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

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

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

打赏作者

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

抵扣说明:

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

余额充值