scrapy如何从scrapy项目中获取项目名称

时间:2015-09-06 12:01:24

标签: python python-2.7 scrapy

对于某些导入问题,我想知道是否有任何变量可以从scrapy项目中调用以获取项目名称,因为我一直在进行像

这样的导入
projectname.something..

并且这些导入是动态的,在运行期间我选择要导入的模块,因此如果有办法获取项目名称,那将使一切变得更容易

2 个答案:

答案 0 :(得分:0)

好吧,我还不确定你为什么需要它,但settings.BOT_NAME会包含你的项目名称:

  

此Scrapy项目实施的机器人名称(也称为   项目名称)。这将用于构造User-Agent   默认,也用于记录。

     

创建时会自动填充项目名称   使用startproject命令创建项目。

from scrapy.conf import settings

print(settings.BOT_NAME)

答案 1 :(得分:0)

您在这里:

Scrapy提供了一种方便的方法来访问在项目设置的文件中指定的属性。

  

如果您在Scrapy项目中,则可以使用一些其他帮助程序将这些组件导入项目中。您可以将其名称传递给CrawlerProcess的蜘蛛自动导入,并使用get_project_settings获取具有项目设置的Settings实例。

from scrapy.utils.project import get_project_settings
settings = get_project_settings()

BOT_NAME = settings.get('BOT_NAME')

请记住使用 .get()方法,因为无法直接访问属性。

有关完整的详细信息,请参见this link

如有任何疑问,请发表评论。经过Scrapy 1.5.1的测试。