我想问一下我在用 fc 的 puppeteer 模板是,经常出现在访问页面的时候提示 net::ERR_NETWORK_CHANGED,需要怎么解决呀?
net::ERR_NETWORK_CHANGED是浏览器提示的网络错误,通常表示网络连接已经断开或发生了变化,导致页面无法正常加载。在阿里云函数计算使用puppeteer模板时,可能会因为网络传输问题造成页面无法正常加载和渲染,从而出现此类错误。
以下是可能的解决方案:
建立稳定的网络连接。阿里云函数计算使用的网络连接可能会因为网络波动、带宽限制等原因出现不稳定的情况。您可以尝试更改网络环境,选择更加稳定的网络连接,如公共云、专有网络等。
增加页面加载缓存。在打开页面时,可以增加缓存等待时间,以便页面能够正常加载完毕,再对页面进行处理。可以使用 page.setDefaultNavigationTimeout() 和 page.setDefaultTimeout() 方法,增加超时等待时间。
增加页面加载等待时间。页面加载过程中,需要等待各种元素的加载完成,如JS文件、CSS文件等。您可以使用 page.waitFor() 方法等待页面加载完毕,再进行页面操作。
模拟浏览器请求头。在访问页面时,可以尝试模拟浏览器请求头,以防止浏览器检测到爬取行为,并拒绝您的访问请求。可以使用 page.setUserAgent() 和 page.setExtraHTTPHeaders() 方法,设置请求头信息。
在操作页面时,避免无效的DOM访问。Puppeteer的操作过程需要通过DOM元素进行页面访问和操作,但是在访问DOM元素时如果元素还未加载完成,则会出现访问失败或者超时的情况。可以使用 page.waitForSelector() 方法,等待指定的DOM元素加载完毕,再进行操作。
net::ERR_NETWORK_CHANGED 错误通常是由于网络连接不稳定或网络配置发生变化导致的。您可以尝试以下解决方法:
检查网络连接是否正常,尝试重新连接网络或更换网络环境。
检查您的网络配置是否正确,例如 DNS 设置是否正确。
尝试使用其他浏览器或设备访问同一页面,以确定是否是浏览器或设备的问题。
如果以上方法都无法解决问题,您可以尝试清除浏览器缓存或重启浏览器。
net::ERR_NETWORK_CHANGED 错误通常是由于网络连接不稳定或者网络环境发生变化导致的。在使用 Puppeteer 访问页面时,如果网络连接不稳定或者网络环境发生变化,可能会出现这个错误。
为了解决这个问题,您可以尝试以下方法:
检查网络连接是否稳定。您可以尝试使用其他网络环境,或者检查当前网络环境是否存在问题。如果网络连接不稳定,可能会导致这个错误。
增加访问页面的超时时间。在 Puppeteer 中,您可以使用 page.goto(url, {timeout: xxx}) 方法来设置访问页面的超时时间。如果访问页面时网络连接不稳定,可以适当增加超时时间,以提高页面加载的成功率。
禁用缓存。在 Puppeteer 中,您可以使用 page.setCacheEnabled(false) 方法来禁用缓存。如果缓存过期或者缓存不一致,可能会导致这个错误。
重新启动 Puppeteer。如果网络连接不稳定,可以尝试重新启动 Puppeteer,以重新建立网络连接。
优化代码逻辑。在编写 Puppeteer 代码时,可以尝试优化代码逻辑,减少网络请求的次数,降低网络连接的压力。
如果您仍然无法解决问题,建议您联系 Puppeteer 的技术支持团队,获取更进一步的帮助。
参考这个:
https://www.troubleshootingcentral.com/how-to-fix-the-err-network-changed-error-in-google-chrome/
此答案来自钉钉群“阿里函数计算官网客户"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。