库函数内存溢出导程序崩溃,表现出来的现象为爬虫程序抓取几百到几千个网页之后突然报错。可以get(url)打开网页但是无法getpagesource获取网页源代码。
工具/原料
Python编译器Jupiternotebook等均可
Beautifulsoup库
方法/步骤
1、检查变量的引用计数。网页源代码的引用计数为1,用beautifulsoup库函数编译网页源代码后,引用计数为5。说明库函数存在问题。编译后的网页代码变量无法被内存释放
2、对程序打印内存信息。发现每次编译后造成内存增加严重。秤郓鹜媲且内存只增不减。可以确定,这段内存在存储编译结果后再也无法释放。beautifulso锇栀劐箨up就是一个大貔貅,只吃不吐。每次调用就吃你几兆内存,导致这段内存溢出。
3、造成的后果就是程序逐步蝉食内存。最后程序崩溃。无法获取网页内容。报蕾蓄允嘞错。计算机卡顿。解决办法是改用其他编译器。推荐lxml库。检验发现引用计数正常,内存被返还给系统。可以持续爬取网页