Scrapy框架-setting.py文件详解

本文介绍了Scrapy爬虫项目的配置参数及其含义,包括项目名称、蜘蛛模块、默认User-Agent等基本配置,以及并发请求、下载延迟等高级设置。此外还涉及了中间件、扩展程序和管道等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用参数含义:

# -*- coding: utf-8 -*-

BOT_NAME = 'demo1'   #Scrapy项目的名字,这将用来构造默认 User-Agent,同时也用来log,当您使用 startproject 命令创建项目时其也被自动赋值。
 
SPIDER_MODULES = ['demo1.spiders']   #Scrapy搜索spider的模块列表 默认: [xxx.spiders]
NEWSPIDER_MODULE = 'demo1.spiders'   #使用 genspider 命令创建新spider的模块。默认: 'xxx.spiders'
 
 
#爬取的 默认User-Agent,除非被覆盖
USER_AGENT = 'demo1 (+http://www.yourdomain.com)'
 
# 是否遵循 robots.txt协议,Falas时不遵循
ROBOTSTXT_OBEY = True
 
#下载器 并发请求的最大值,默认: 16
CONCURRENT_REQUESTS = 32
 
#为同一网站的请求配置下载延迟(默认值:0 单位:秒)
DOWNLOAD_DELAY = 3   #下载器在下载同一个网站下一个页面前需要等待的时间,该选项可以用来限制爬取速度,减轻服务器压力。同时也支持小数:0.25 以秒为单位
 
    
#下载延迟设置只有一个有效
CONCURRENT_REQUESTS_PER_DOMAIN = 16   #对单个网站进行并发请求的最大值。
CONCURRENT_REQUESTS_PER_IP = 16       #对单个IP进行并发请求的最大值,默认0, 
# 如果CONCURRENT_REQUESTS_PER_IP 非0,则忽略 CONCURRENT_REQUESTS_PER_DOMAIN 设定,使用该设定。 该设定也影响 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0,下载延迟应用在IP而不是网站上


#是否使用 中间件 里的cookie(注释时,注释掉时 默认为不使用)
#若在spider文件里,使用headers中的cookie,则取消该注释
COOKIES_ENABLED = False
 
#禁用Telnet控制台(默认启用)
TELNETCONSOLE_ENABLED = False 
 
#覆盖默认请求标头:
DEFAULT_REQUEST_HEADERS = {
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
   'Accept-Language': 'en',
}
 
#启用或禁用爬虫中间件 543是优先级, 数字越小 优先级越高(优先被使用)
SPIDER_MIDDLEWARES = {
    'demo1.middlewares.Demo1SpiderMiddleware': 543,
}
 
# 启用或禁用下载器中间件  543是优先级, 数字越小 优先级越高(优先被使用)
DOWNLOADER_MIDDLEWARES = {
    'demo1.middlewares.MyCustomDownloaderMiddleware': 543,
}
 
#启用或禁用扩展程序
EXTENSIONS = {
    'scrapy.extensions.telnet.TelnetConsole': None,
}
 
#配置项目管道
ITEM_PIPELINES = {
    'demo1.pipelines.Demo1Pipeline': 300,
}
 
#启用和配置AutoThrottle扩展(默认情况下禁用)
AUTOTHROTTLE_ENABLED = True
 
#初始下载延迟
AUTOTHROTTLE_START_DELAY = 5
 
#在高延迟的情况下设置的最大下载延迟
AUTOTHROTTLE_MAX_DELAY = 60
 
 
#Scrapy请求的平均数量应该并行发送每个远程服务器
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
 
#启用显示所收到的每个响应的调节统计信息:
AUTOTHROTTLE_DEBUG = False
 
#启用和配置HTTP缓存(默认情况下禁用)
HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_IGNORE_HTTP_CODES = []
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'



# 自己添加

# 日志配置
LOG_LEVEL = 'WARNING' # 设置日志等级
"""
Scrapy提供5层logging级别:
CRITICAL - 严重错误(critical)
ERROR - 一般错误(regular errors)
WARNING - 警告信息(warning messages)
INFO - 一般信息(informational messages)
DEBUG - 调试信息(debugging messages)
scrapy默认显示DEBUG级别的log信息
"""

LOG_FILE = './log.log' # 日志文件的保存

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值