永发信息网

使用apscheduler 和 scrapy 做定时抓取爬虫为什么只抓取一次

答案:2  悬赏:40  手机版
解决时间 2021-03-22 23:42
  • 提问者网友:绫月
  • 2021-03-22 12:16
使用apscheduler 和 scrapy 做定时抓取爬虫为什么只抓取一次
最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-03-22 13:55
代码:
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
import time
from log.make_log import make_log_file
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from spider.spiders.aqi import AqiSpider
def aqi(crawler, spider):
try:
crawler.crawl(spider)
crawler.start()
except Exception, e:
make_log_file(str(e),'scrapy')

if __name__ == '__main__':
settings = get_project_settings()
crawler = CrawlerProcess(settings)
spider = AqiSpider()
scheduler = BackgroundScheduler()
scheduler.daemonic=False
cron = CronTrigger(second='*/30')
scheduler.add_job(aqi, cron, args=[crawler, spider])
scheduler.start()
while True:
time.sleep(1000)
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-22 14:51
经过自己折腾和翻墙查找终于让它在linux下运行起来了,第一次调度爬虫作业是打开的,但是不解析网页,只有第二次调度它时,它才开始解析并且正常工作。 猜测和react.run()有关,apscheduler任务调度框架和scrapy结合使用时是要在twisted框架下使用的。 当要定时执行爬虫任务时,第一次不解析,第二次开始解析。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯