1. 程式人生 > >Scrapy Settings級別 & 如何獲取settings & 一些可能用到的setting

Scrapy Settings級別 & 如何獲取settings & 一些可能用到的setting

http://doc.scrapy.org/en/1.0/topics/settings.html

一、有5種類型的Settings,優先順序由高到低

1. 命令列選項

使用-s複寫設定,如scrapy crawl myspider -s LOG_FILE=scrapy.log

2. 每個spider的setting

scrapy.spiders.Spider.custom_settings屬性設定

3. 專案的setting

myproject.settings,專案下的settings檔案

4. 每個命令的預設setting

5. 預設setting


二、獲取settings值

經常需要在pipeline或者中介軟體中獲取settings的屬性,可以通過scrapy.crawler.Crawler.settings屬性

class MyExtension(object):

    @classmethod
    def from_crawler(cls, crawler):
        settings = crawler.settings
        if settings['LOG_ENABLED']:
            print "log is enabled!"  

三、一些設定:

1. DNS_TIMEOUT預設60s

2. DOWNLOADER_MIDDLEWARES下載中介軟體

3. DOWNLOAD_DELAY兩次下載的間隔

4. DOWNLOAD_TIMEOUT預設180s

5. DOWNLOAD_MAXSIZE預設1024M

6. LOG_ENABLED

7. LOG_FILE預設是NONE

8. LOG_LEVEL,預設是DEBUG,即列印DEBUG, INFO, WARNING, ERROR,所有LOG資訊

9. LOG_STDOUT,預設是false,所有的標準輸出是否放在log中

10. MEMDEBUG_ENABLED,預設是false

11. RANDOMIZE_DOWNLOAD_DELAY預設是true, 等待0.5-1.5*DOWNLOAD_DELAY時間,防止被禁

12. USER_AGENT預設是”Scrapy/VERSION (+http://scrapy.org)