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

使用requests-html渲染JS页面时遭遇IOError问题求助

解决requests-html调用render()时的pyppeteer临时目录清理IO错误

嘿,我之前也踩过这个坑!这个报错本质上是pyppeteer在程序退出时,尝试自动清理Chrome临时用户数据目录时出了权限问题,或者目录已经被系统提前删掉了。给你几个亲测有效的解决办法:

  • 手动指定Chrome用户数据目录
    调用render()的时候,通过user_data_dir参数指定一个你有权限读写的本地目录,这样pyppeteer就不会使用容易出问题的临时目录了,示例代码:

    from requests_html import HTMLSession
    
    session = HTMLSession()
    r = session.get("你要爬取的目标URL")
    # 指定自定义的用户数据目录,路径可以自己改
    r.render(user_data_dir="./my_chrome_profile")
    
  • 禁用临时目录自动清理
    如果你不想自定义目录,也可以直接关闭pyppeteer的自动清理逻辑,在render()里传递相关参数即可:

    r.render(kwargs={"cleanup": False})
    

    这样程序退出时就不会触发清理操作,自然也就不会报这个错误了。

  • 修复系统权限问题
    如果你用的是Windows系统,大概率是Python进程没有删除临时目录的权限。可以试试右键点击Python脚本,选择「以管理员身份运行」,或者检查系统临时目录(一般在C:\Users\你的用户名\AppData\Local\Temp)的读写权限是否对当前用户开放。

  • 升级依赖库
    这个问题在requests-html和pyppeteer的旧版本里是个常见bug,尝试升级到最新版说不定直接就解决了:

    pip install --upgrade requests-html pyppeteer
    

顺便提一句:这个报错其实不会影响页面渲染的结果,它只是在程序退出阶段触发的清理错误,但看着确实闹心,上面的方法应该能帮你搞定。

内容的提问来源于stack exchange,提问作者tony.guo140502

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:24:18