小编Cal*_*cho的帖子

在独立的 scrapy 脚本中使用自定义中间件

我正在编写一个独立的抓取脚本(update.py),它实现了自定义下载器中间件。

该脚本当前使用此处此处记录的 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()
Run Code Online (Sandbox Code Playgroud)

该脚本返回错误:“没有名为‘update’的模块”

如果我将 update.CustomMiddleware 替换为 CustomMiddleware,它将返回“不是有效路径”

我知道 get_project_settings() 实用程序,但我的脚本不能位于项目文件夹中,并且必须能够在没有任何其他文件的情况下运行。

这是可以实现的吗?如果可以,实现这一目标的最佳方法是什么?

python scrapy

5
推荐指数
1
解决办法
2300
查看次数

标签 统计

python ×1

scrapy ×1