scrapy-redis,爬取全部url结束,不需要清空redis,已设置SCHEDULER_PERSIST = True。

发布于 2022-09-05 05:05:17 字数 1213 浏览 13 评论 0

  1. 使用scrapy-redis,已设置SCHEDULER_PERSIST = True,爬取结束后,仍自动清空redis库。

  2. 清空redis库,不会自动停止爬取,仍在一直请求。

  3. 我是使用一个种子库,用master插入请求的url,slave读取source:start_urls,未使用scrapy-reids自动插入url到redis。

  4. 运行了一下scrapy-redis里面的example-project,lpush了一个url,使用scrapy crawl myspider_redis,发现也是不能自动结束,一直空跑。

  5. settings设置如下:

SPIDER_MODULES = ['market.spiders']
NEWSPIDER_MODULE = 'market.spiders'


DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"
SCHEDULER_PERSIST = True

DOWNLOADER_MIDDLEWARES = {
    'market.middleware.UserAgentMiddleware': 401,
    'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 400,
    'market.redirect_middleware.Redirect_Middleware':500,

}

ITEM_PIPELINES = {
    'market.pipelines.MarketPipeline': 300,
    'scrapy_redis.pipelines.RedisPipeline': 301,
}

LOG_LEVEL = 'DEBUG'

# Introduce an artifical delay to make use of parallelism. to speed up the
# crawl.
DOWNLOAD_DELAY = 1
COMMANDS_MODULE = 'market.commands'

#redis
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由如风 2022-09-12 05:05:18
  • 解决url取完,继续空跑,可以参考这个解决空跑

  • 或者在 scrapy-redis/spider的next_requests加入:

if found == 0:
    self.crawler.engine.close_spider('queue is empty, the spider close')
潜移默化 2022-09-12 05:05:18

请问待爬url抓取完成之后,程序仍不结束继续空跑问题解决了吗?该怎么解决?谢谢了!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文