В моем файле настроек есть глобальная настройка параметров, а затем я обновляю эту настройку с помощью пользовательских настроек для каждого паука.
settings.py
global main_settings
main_settings = {
'ITEM_PIPELINES': {
'pipelines.MainPipeline': 90,
},
'CONCURRENT_REQUESTS': 100,
'CONCURRENT_REQUESTS_PER_IP': 100,
'ROBOTSTXT_OBEY': False,
'CONCURRENT_ITEMS': 300,
'REACTOR_THREADPOOL_MAXSIZE': 150,
'LOG_LEVEL': 'INFO',
'RETRY_ENABLED': False,
'DONT_RETY': True,
'RETRY_TIMES': 0,
'COOKIES_ENABLED': False,
'REDIRECT_MAX_TIMES': 0,
'DOWNLOAD_FAIL_ON_DATALOSS': False,
'DNS_TIMEOUT': 60,
'LOG_STDOUT': True,
'DOWNLOADER_STATS': False
}
spiders.py
import settings
class MySpider(Spider):
name = 'my_spider'
custom_settings = dict(settings.main_settings)
local_settings = {
'FEED_EXPORT_FIELDS': ["url"],
'FEED_FORMAT': 'csv',
'FEED_URI': './output/phase3.csv'
}
custom_settings.update(local_settings)