示例#1
0
    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