python - 爬虫没有按配置的时间运行,是为什么?
大家讲道理
大家讲道理 2017-04-18 09:48:30
0
5
239

需求是这样,我把所有的url存在了mongo库,想每天查一遍url,抓一遍数据,可是周末并没有执行,


这个项目的日志

项目配置是这样的,我修改过几次itag,让项目重跑,别的项目也遇到几天不跑

 @every(minutes=10)
    def on_start(self):
        """运行入口"""
        self.crawl('data:, on_crawl_A', callback=self.crawl_A)
        
    @config(age=60,priority=3)     
    def crawl_A(self, response):
        for page in range(1, 549):
            params = {
                'page_index': page, 'size': self.PAGE_SIZE,
                'source': 'aaa',
            }
            self.crawl(self.DATA_SERVICE_URL, params=params,
                       callback=self.query_local_api, timeout=60, proxy=False)

    @config(age=2 * 60,priority=3)
    def query_local_api(self, response):
        data = json.loads(response.text)
        if data['msg'] != 'Success':
            return
        urls = [url for url in data['body'] if url.startswith("http://")]
        print 'urls len------>{}'.format(len(urls))
        for url in urls:
            self.crawl(url, callback=self.detail_page)
    @config(age=3 * 60 * 60,priority=10)
    def detail_page(self, response):

其中query_local_api 是查询本地mongo接口返回url,其实我想这样配置

@config(age=24 * 60 * 60,priority=10)
    def detail_page(self, response):

但是发现这个age怎么配都感觉抓的不对,我理解问题?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(5)
PHPzhong
  1. 귀하의 코드는 게시한 사진과 일치하지 않습니다. 코드는 10분마다 실행되지만 위의 사진은 6시간입니다

  2. 포함되어야 한다고 생각되는 작업을 찾아 디버그 페이지(왼쪽 상단 json에 있음)에서 taskid를 가져온 다음 /task/project:taskid 페이지로 이동하여 현재 상태를 확인하세요.

大家讲道理

저는 현재 Python으로 예약된 작업을 작성하는 방법을 연구하고 있습니다. apscheduler를 사용하는 것이 좋습니다.

刘奇

사실 이 문제는 *nix 시스템 자체의 crontab 예약 작업

을 이용하면 해결될 수 있습니다.
洪涛

추측:
작성한 데코레이터가 올바르게 처리되지 않았기 때문일까요?

小葫芦

지금은 PHP로 크롤러를 작성하려고 공부하고 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿