官方文档:https://scrapy-chs.readthedocs.io
Scrapy配置分两种,分别是全局配置和局部配置(局部配置可以覆盖全局配置)
全局配置以赋值的方式书写在settings.py中
ROBOTSTXT_OBEY = False
局部配置以字典形式书写在Spider文件中
class BaiDuSpider(scrapy.Spider):
name = 'BaiDu'
start_urls = ['http://www.baidu.com']
custom_settings = {
'ROBOTSTXT_OBEY': False,
}
def parse(self, response):
print(response)
BOT_NAME
当使用 startproject 命令创建项目时其也被自动赋值
BOT_NAME = 'ProjectName'
SPIDER_MODULES
crawl命令到此目录下寻找爬虫运行
SPIDER_MODULES = ['ProjectName.spiders']
NEWSPIDER_MODULE
genspider创建的爬虫被放到此目录下
NEWSPIDER_MODULE = 'ProjectName.spiders'
ROBOTSTXT_OBEY
是否遵守机器人协议(大多数情况遵守协议是写不了爬虫的)
ROBOTSTXT_OBEY = False
CONCURRENT_REQUESTS
最大的并发请求数量(默认16)
CONCURRENT_REQUESTS = 16
DEFAULT_REQUEST_HEADERS
设置默认请求头(会被局部headers覆盖)
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
USER_AGENT
对请求头中User-AGENT进行设置
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63'
DOWNLOAD_DELAY
下载器延迟
DOWNLOAD_DELAY = 0.25 #下载延迟0.25秒
DOWNLOAD_TIMEOUT
下载器超时设置(默认180秒)
DOWNLOAD_TIMEOUT = 180
COOKIES_ENABLED
是否携带cookies (默认True),设置为False可以起到禁用cookies的作用
COOKIES_ENABLED = True
COOKIES_DEBUG
是否追踪cookies(默认为False)
COOKIES_DEBUG = False
PROXIES
代理设置(建议在中间件中配置)
PROXIES = [
{'ip_port': '111.11.228.75:80', 'password': ''},
{'ip_port': '120.198.243.22:80', 'password': ''},
]
DOWNLOAD_HANDLERS
爬虫协议管理
DOWNLOAD_HANDLERS = {
# 请求协议提升为http2
'https': 'scrapy.core.downloader.handlers.http2.H2DownloadHandler',
}
HTTPERROR_ALLOWED_CODES
忽略某些状态码(一般用于处理重定向)
HTTPERROR_ALLOWED_CODES = [302, 304]
LOG_ENABLED
是否启用日志(默认True)
LOG_ENABLED = True
LOG_ENCODING
日志编码设置(默认 ‘utf-8’)
LOG_ENCODING = 'utf-8'
LOG_LEVEL
日志等级设置
LOG_LEVEL = 'LOG_LEVEL' # 严重错误
LOG_LEVEL = 'ERROR' # 一般错误
LOG_LEVEL = 'WARNING' # 警告信息
LOG_LEVEL = 'INFO' # 一般信息
LOG_LEVEL = 'DEBUG' # 调试信息
LOG_FILE
日志输出文件名
LOG_FILE = "test.log"
网友评论