python - 爬虫没有按配置的时间运行,是为什么?

 手机用户2502856053 发布于 2022-10-26 22:02

需求是这样,我把所有的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 个回答
  • 现在正在研究用PHP写爬虫

    2022-10-27 01:31 回答
  • 猜想:
    会不会是因为你写的装饰器里边的处理的不对呢?

    2022-10-27 01:31 回答
  • 其实可以退一步看, 这个问题是可以利用*nix系统自带的crontab计划任务搞定的

    2022-10-27 01:31 回答
  • 我最近在研究python写定时任务,你可以考虑下用apscheduler

    2022-10-27 01:31 回答
    1. 你这个代码和你贴的这个图不一致啊,代码是10分钟运行一次,图上面是6小时

    2. 随便找一个你认为应该被的任务,在 debug 页面获取 taskid(左上的 json 里面有),到 /task/project:taskid 页面查看它当前的状态

    2022-10-27 01:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有