gpt4 book ai didi

python - Scrapyd 计划细节到数据库

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:55 40 4
gpt4 key购买 nike

您好,我正在使用 Scrpayd 来安排我的蜘蛛程序。问题是我想跟踪到目前为止安排的作业的所有历史信息。但是如果scrapyd服务器重启,所有的信息都会被删除。

我的问题是有没有其他方法可以将这些值存储到像 sql server 这样的持久存储中?

或者还有其他方法吗?

谁能帮帮我?

谢谢,

最佳答案

我相信蜘蛛中间件非常适合完成这项工作。您可以在蜘蛛完成其工作后立即将统计信息和其他所需信息保存在数据库中。

这是一个草稿:

from scrapy import signals
import os

class UpdateStatsMiddleware(object):
def __init__(self, crawler):
self.crawler = crawler
# register close_spider method as callback for the spider_closed signal
crawler.signals.connect(self.close_spider, signals.spider_closed)

@classmethod
def from_crawler(cls, crawler):
return cls(crawler)

def get_jobid(self):
"""Gets jobid through scrapyd's SCRAPY_JOB env variable"""
return os.environ['SCRAPY_JOB']

def close_spider(self, spider, reason):
# do your magic here...
spider.log('Finishing spider with reason: %s' % reason)
stats = self.crawler.stats.get_stats()
jobid = self.get_jobid()
self.update_job_stats(jobid, stats)

def update_job_stats(self, jobid, stats):
# do your magic here...
pass

http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.html http://scrapy.readthedocs.org/en/latest/topics/signals.html

关于python - Scrapyd 计划细节到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28317579/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com