Ejemplo n.º 1
0
    def _get_year_bound(self, date, days):
        params = {}
        if date is None:
            return params

        params['date_gkr_from'] = date2str(date)
        ret = False
        if days:
            old_year = date.year
            to = date + timedelta(days=days)
            if to.year != old_year:
                ret = True
        if days is None or ret:
            to = datetime(date.year, 12, 31)
        params['date_gkr_to'] = date2str(to)
        return params
Ejemplo n.º 2
0
 def _crawl_page_done(self, total_count, item):
     """爬取页面完成后的操作"""
     # 更新值
     self.redis.inc_index()
     self.redis.add_cur_count(count=len(item['array']))
     self.logger.info('爬取%s: 第%d页%d条,当前共%d条' %
                      (self.redis.main_cls_number, self.redis.cur_page,
                       len(item['array']), self.redis.cur_count))
     self.redis.inc_page()
     # 使用到了天数且爬取完成
     is_next = self.redis.cur_count < total_count
     if not is_next and self.redis.is_using_date():
         is_next = True
         self._cookie_dirty = True
         self.redis.set_cur_page(1)
         self.redis.set_cur_count(0)
         # 年份处理
         old_year = self.redis.date.year
         date = self.redis.date + timedelta(days=self.redis.days)
         # 超出年份, 切换到下一年
         if date.year != old_year:
             # 最低年限,超出这个年限则不再进行爬取
             BOUND_YEAR = int(os.getenv('BOUND_YEAR', 1989))
             if BOUND_YEAR > old_year - 1:
                 is_next = False
             else:
                 date = datetime(old_year - 1, 1, 1)
                 self.redis.set_days(366)
         self.redis.set_date(date)
         if is_next:
             self.logger.info('爬取从%s开始' % date2str(self.redis.date))
     # 是否继续爬取页面
     return is_next
Ejemplo n.º 3
0
 def set_date(self, date):
     self.date = date
     dateStr = date2str(date)
     self.redis.hset('process', 'date', dateStr)