我正在编写一个独立的抓取脚本(update.py),它实现了一个自定义下载器中间件。
该脚本目前正在使用记录为here和here的CrawlerProcess()API。
它看起来像这样:
from scrapy.crawler import CrawlerProcess
import scrapy
class CustomMiddleware(object):
.... custom middleware definition
settings = {'LOG_LEVEL' :'INFO',
'COOKIES_ENABLED' : False,
'DOWNLOADER_MIDDLEWARES' : {
'update.CustomMiddleware': 400,
}
}
class CarvanaSpider(scrapy.Spider)
... Spider definition
process = CrawlerProcess(settings)
process.crawl(CarvanaSpider)
process.start()
该脚本返回错误:"没有名为'更新'"
的模块如果我将Custom.CustomMiddleware替换为CustomMiddleware,则返回'不是有效路径'
我知道get_project_settings()实用程序,但我的脚本不能在项目文件夹中,并且必须能够在没有任何其他文件的情况下运行。
这是否可以实现?,如果是这样,最好的方法是什么?
答案 0 :(得分:0)
您需要单独的中间件文件并在脚本之上导入中间件。
CustomMiddleware(object)类: ....自定义中间件定义
该课程将在middleware.py
中,并且在设置中只能这样添加
routes
以及Middleware.py和您都在同一目录中编写脚本。