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)
而没有及时取处理。
不知道,不写中间件,是否能解决问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
scrapy有一个请求队列,request生成了,但不一定会发出去。
目测这个代码生成了过多的webdriver或者HtmlResponse,没有及时处理导致的。