[问题] 内存不足

楼主: cathy0610 (凯西)   2020-10-29 05:21:45
请问执行会对网页重复执行爬虫的脚本
它在执行一段时间后
chrome浏览器就会显示out of memory
程式就停止了
(电脑内存32g)
请问这个问题有办法解决吗?
(除了重启浏览器,还有其他方法吗?)
谢谢
作者: Hsins (翔)   2020-10-29 06:18:00
你的问题叙述没头没尾的。纯粹执行 Python 脚本通常是直接丢请求取东西回来,要嘛就是取页面原始码再透过 selector或 xpath 定位,又或是直接字串透过正则表达式做 parsing,这时的内存不足会是脚本可能有 memory leak 或者是读入过量的资料。如果还需要开浏览器,通常是有需要加载 js 才会渲染页面,要嘛 headless 要嘛 seleium,至少要交代一下吧?浏览器跳内存不足的原因有很多啊,你脚本是不是会一直开新分页?又或者是要一直下拉加载新内容?还是其他?如果是开太多分页或内存没清,就去找文件看看那个方法可以调用去关分页或者是清理浏览器的内存,然后在脚本里呼叫。如果清了内存就不能爬了,那就找其他的爬法…搞不好是对方网站加载的 js 有没写好的东西一直堆上去…如果你需要爬的东西,是重启浏览器之后直接运行脚本继续爬也没差,容错率比较高的话。写个脚本定期去杀掉进程,然后重启会比较快速无脑
作者: kobe8112 (小B)   2020-10-29 09:10:00
有办法解决,办法就是把脚本内错误的程式码修正
作者: stillcolor (鬼艾伦)   2020-10-29 10:11:00
一楼回答完了...下次发问记得多提供点资讯selenium没开新分页,应该就先往程式码找看看
作者: aidansky0989 (alta)   2020-10-29 10:43:00
用Selenium爬,那可能会是有点消耗资源,因为开太多页面
作者: stillcolor (鬼艾伦)   2020-10-29 11:19:00
之前碰到过开太多分页,导致chrome内存爆炸,供参考
作者: jasonfghx (工人)   2020-11-01 19:29:00
se拼错?

Links booklink

Contact Us: admin [ a t ] ucptt.com