对于某些导入问题,我想知道是否有任何变量可以从scrapy项目中调用以获取项目名称,因为我一直在进行像
这样的导入projectname.something..
并且这些导入是动态的,在运行期间我选择要导入的模块,因此如果有办法获取项目名称,那将使一切变得更容易
答案 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的测试。