1、将配置放在settings.py
中时,注意该脚本中配置会被使用pickle
进行持久化操作,因此,如使用redis
,不要在此处进行如
rdb = redis.Redis(db=0)
此类操作,可以放到执行脚本中
2、使用CrawlerProcess
进行替代scrapy crawl CrawlerName
时,如果需要多次执行(例如下文中用到的定时多次执行),需要将其置入多进程中,否则会报错,具体原因还不清楚,看来还需要好好研究下scrapy
为了保证setting生效,需要将setting置入
# 官方即将舍去该方式
# from scrapy.conf import setting
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
process = CrawlerProcess(settings)
可以这样:
def start_crawl():
process