使用HTMLSession渲染JavaScript遇pyppeteer NetworkError,求解决方法
解决HTMLSession渲染JS时的pyppeteer NetworkError问题
可行修复方案
1. 降级pyppeteer版本
这类Protocol错误多因pyppeteer与Chromium版本不兼容导致,安装指定稳定版本:
pip uninstall pyppeteer -y pip install pyppeteer==0.2.6
2. 重新下载兼容Chromium或指定浏览器路径
强制重新下载适配的Chromium,代码中添加配置:
from requests_html import HTMLSession session = HTMLSession() r = session.get('目标URL') r.html.render( retries=3, timeout=60, browser_args=['--no-sandbox', '--disable-setuid-sandbox'] )
若仍报错,手动指定本地已安装的Chrome/Chromium路径:
r.html.render( browser_args=['--no-sandbox', '--disable-setuid-sandbox', '--executable-path=/usr/bin/chromium-browser'] )
3. 调整渲染超时与重试参数
页面加载过慢可能导致连接中断,延长等待时间并增加重试:
r.html.render( retries=5, timeout=120, wait=5 # 等待页面加载完成的秒数 )
4. 禁用浏览器沙箱(Linux环境适用)
Linux下权限限制易触发该错误,添加沙箱禁用参数:
r.html.render(browser_args=['--no-sandbox', '--disable-setuid-sandbox'])
5. 清理pyppeteer缓存并重启环境
删除pyppeteer缓存目录后重新运行代码,让其重新下载适配文件:
- Windows:
C:\Users\<你的用户名>\AppData\Local\pyppeteer\pyppeteer - Linux/macOS:
~/.local/share/pyppeteer/
内容的提问来源于stack exchange,提问作者a9pe 0ad
相关产品推荐
相关产品推荐

