scrapy 中间件的问题?

背景:scrapy+selenium+PhantomJS

我在scrapy中写了中间件:

if request.meta.has_key('PhantomJS'):
        driver = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs') 
        driver.get(request.url)
        time.sleep(10)
        content = driver.page_source.encode('utf-8')
        driver.quit()
        return HtmlResponse(request.url, encoding='utf-8', body=content, request=request)
    
    
    

但是遇到的问题是:当爬到一定数量的页面时,就爬不动了。
我怀疑是中间件在内存中加载了过多的数据,这些数据来自HtmlResponse(request.url, encoding='utf-8', body=content, request=request)
而没有及时取处理。

不知道,不写中间件,是否能解决问题?

阅读 3.6k
1 个回答

scrapy有一个请求队列,request生成了,但不一定会发出去。
目测这个代码生成了过多的webdriver或者HtmlResponse,没有及时处理导致的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进