def _redirect(self, redirected, request, spider, reason): redirect_url = redirected.url try: ci = request.cookies[FetchConstant.CarInfo] seqid = ci.seqid except:pass try: fs = FetchSession() ci_exist = fs.query(CarInfo).filter(CarInfo.sourceurl == redirect_url)\ .filter(CarInfo.seqid != seqid).first() if ci_exist: msg = (u'car with popular exist %s' % seqid) spider.log(msg, log.INFO) # ci.statustype = u'3' try: # fs.merge(ci) fs.delete(ci) except: fs.rollback() else: msg = (u'delete car with popular exist %s ' % seqid) spider.log(msg, log.INFO) fs.commit() finally: fs.close() raise IgnoreRequest else: return RedirectMiddleware._redirect(self, redirected, request, spider, reason) except Exception as e: raise e