很开心今个遇到了一个问题,scrapy使用爬虫的时候内部内存不受控制的增长.
之前使用的数据库一直都是mysql,严格遵守 item
,spider
,pipeline
这个三个顺序来写的.在运行的时候单个spider的大小一直很稳定.60Mb
以内.
现在遇到的问题是,我最近采集数据切换到了MongoDB
,因为非结构化,我直接在内容部使用dict
而不是使用item
来运行.这个情况导致我运行spider
很快我的内存便出现则无序的增长.在之后我的电脑就出现卡死的情况.
我需要解决这个问题:
- 是MongoDB没有释放造成的?
是的,MongoDB没有释放出来 - 还是我没有按照
item
构造造成的?
不是这个原因.
scrapy运行过程中为什么内存会一直增长?
因为我在 paser
里面调用了MongoDB
导致内存一直没有没有释放出来,从而导致内存高涨.
举个例子:
class XJSEArticleSpider(RedisCrawlSpider):
name = 'XJSE_Article'
custom_settings = {
<