需求是这样,我把所有的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怎么配都感觉抓的不对,我理解问题?
귀하의 코드는 게시한 사진과 일치하지 않습니다. 코드는 10분마다 실행되지만 위의 사진은 6시간입니다
포함되어야 한다고 생각되는 작업을 찾아 디버그 페이지(왼쪽 상단 json에 있음)에서 taskid를 가져온 다음 /task/project:taskid 페이지로 이동하여 현재 상태를 확인하세요.
저는 현재 Python으로 예약된 작업을 작성하는 방법을 연구하고 있습니다. apscheduler를 사용하는 것이 좋습니다.
사실 이 문제는
을 이용하면 해결될 수 있습니다.*nix
시스템 자체의crontab
예약 작업추측:
작성한 데코레이터가 올바르게 처리되지 않았기 때문일까요?
지금은 PHP로 크롤러를 작성하려고 공부하고 있습니다