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

使用requests_html的render滚动加载页面数据失效如何解决?

代码存在3个核心问题

  • 你手动初始化了独立的HTML(html=ses.text)对象,这个对象不会跟随ses.html.render()的执行更新内容,所有动态渲染后的内容只存在于ses.html实例中,你手动创建的html对象一直是最开始请求返回的静态源码
  • item_list是你在render执行前就查询出来的静态结果,不会自动同步页面更新后的内容,render执行完成后需要重新调用find方法查询元素
  • scrolldown=100时搭配的sleep=0.1时间过短,页面滚动后接口请求还没返回、内容还没渲染完成就停止等待了,会导致内容加载不全

修正后可正常运行的代码

from requests_html import HTMLSession

keyword = '유산균'
n = 1
url = f'https://search.shopping.naver.com/search/all?frm=NVSHATC&origQuery={keyword}&pagingIndex={n}&pagingSize=80&productSet=total&query={keyword}&sort=rel&timestamp=&viewType=list'

session = HTMLSession()
ses = session.get(url)

# 直接用ses.html操作,不要手动创建独立HTML对象
item_list = ses.html.find('div.basicList_title__3P9Q7')
print(len(item_list)) # 此时输出为初始加载的5条

# 调整滚动次数和sleep时长保证内容加载完成
ses.html.render(scrolldown=20, sleep=1)

# render完成后重新查询元素
item_list = ses.html.find('div.basicList_title__3P9Q7')
print(len(item_list)) # 此时会输出加载完成的80条

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:42:03