0

有什么方法可以压缩日志吗?我需要将它们存储一段时间以供以后调试,找到减小它们大小的方法会很酷。如果没有这样的方法,那么如何更有效地组织压缩过程呢?

4

1 回答 1

1

closed您可以通过在spider方法中编写压缩代码,在spider运行完成后对日志进行压缩。请参阅下面的示例,其中我压缩了日志文件,然后在压缩后删除了初始日志文件。您可以通过添加一些错误处理来改进代码。

import scrapy
import gzip
import os

class TestSpider(scrapy.Spider):
    name = 'test'
    allowed_domains = ['toscrape.com']
    start_urls = ['https://books.toscrape.com']

    custom_settings = {
        'LOG_FILE': 'scrapy.log'
    }

    def parse(self, response):
        yield {
            'url': response.url
        }

    def closed(self, reason):
        with open('scrapy.log', 'rb') as f_in, gzip.open('scrapy.log.gz', 'wb') as f_out:
            f_out.writelines(f_in)
        os.remove('scrapy.log')
于 2021-12-21T03:11:36.917 回答