(Python)从一个模块中的_uinit_uuu导入参数以用于另一个模块?

(Python)从一个模块中的_uinit_uuu导入参数以用于另一个模块?,python,Python,我对Python真的很陌生,一直在将它与Scrapy结合使用来制作一些网络爬虫。从终端运行spider时,我可以使用“-a NAME=VALUE”设置参数,这对于将其定向到不同的域特别有用。我试图在另一个模块中使用“domain”参数作为变量,但被卡住了。下面是我试图从中导入参数的模块的一部分: class Spider(spiders.CrawlSpider): name = 'changelog' rules = (spiders.Rule(SgmlLinkExtractor

我对Python真的很陌生,一直在将它与Scrapy结合使用来制作一些网络爬虫。从终端运行spider时,我可以使用“-a NAME=VALUE”设置参数,这对于将其定向到不同的域特别有用。我试图在另一个模块中使用“domain”参数作为变量,但被卡住了。下面是我试图从中导入参数的模块的一部分:

class Spider(spiders.CrawlSpider):
    name = 'changelog'
    rules = (spiders.Rule(SgmlLinkExtractor(), callback='parse_item', follow=True),)

    def __init__(self, domain='WHAT_IM_TRYING_TO_FIND', *args, **kwargs):
        super(Spider, self).__init__(*args, **kwargs)
        self.domain = domain
        self.allowed_domains = [domain]
        self.start_urls = [
            'http://%s/' % domain,
            'http://%s/index.html' % domain,
            'http://%s/index.php' % domain,
        ]
在单独的模块中,尝试以下操作

from MyModule import Spider

variable = Spider.domain

给我

Class 'Spider' has no 'domain' member
任何指导都将不胜感激

Scrapy的文件结构如下所示:

myproject/
__init __.py
items.py
pipelines.py
settings.py
spiders/
    __init __.py
    spider.py


domain
是Spider实例的属性,而不是Spider类的属性。如果您在某处创建了一个Spider的实例,则只能访问域。域是Spider实例的属性,而不是Spider类的属性。如果您在某处创建了一个Spider的实例,则只能访问域。域是Spider实例的属性,而不是Spider类的属性。如果您在某处创建了一个Spider的实例,则只能访问域。域是Spider实例的属性,而不是Spider类的属性。如果您在某处创建了一个
Spider
实例,则只能访问
domain

尝试访问
域的模块是由
Spider
触发的,因此它应该能够访问
属性,我只是不确定如何操作。谢谢@克里斯蒂安:你需要提供更多的细节。当Spider“触发”您的模块时,它是否提供了关于它已经创建的Spider的任何信息?希望我能很好地解释我自己。Scrapy项目具有以下文件结构:编辑:添加到原始问题执行spider时,它所刮取的项目将传递到处理它们的方式的
pipelines.py
pipelines.py
models.py
导入类,我想从这里访问
。基本上,
Spider
返回一个项目,该项目通过
pipelines.py
,该过程对每个项目重复。试图访问
域的模块是由
Spider
触发的,因此它应该能够访问
属性,我只是不确定如何操作。谢谢@克里斯蒂安:你需要提供更多的细节。当Spider“触发”您的模块时,它是否提供了关于它已经创建的Spider的任何信息?希望我能很好地解释我自己。Scrapy项目具有以下文件结构:编辑:添加到原始问题执行spider时,它所刮取的项目将传递到处理它们的方式的
pipelines.py
pipelines.py
models.py
导入类,我想从这里访问
。基本上,
Spider
返回一个项目,该项目通过
pipelines.py
,该过程对每个项目重复。试图访问
域的模块是由
Spider
触发的,因此它应该能够访问
属性,我只是不确定如何操作。谢谢@克里斯蒂安:你需要提供更多的细节。当Spider“触发”您的模块时,它是否提供了关于它已经创建的Spider的任何信息?希望我能很好地解释我自己。Scrapy项目具有以下文件结构:编辑:添加到原始问题执行spider时,它所刮取的项目将传递到处理它们的方式的
pipelines.py
pipelines.py
models.py
导入类,我想从这里访问
。基本上,
Spider
返回一个项目,该项目通过
pipelines.py
,该过程对每个项目重复。试图访问
域的模块是由
Spider
触发的,因此它应该能够访问
属性,我只是不确定如何操作。谢谢@克里斯蒂安:你需要提供更多的细节。当Spider“触发”您的模块时,它是否提供了关于它已经创建的Spider的任何信息?希望我能很好地解释我自己。Scrapy项目具有以下文件结构:编辑:添加到原始问题执行spider时,它所刮取的项目将传递到处理它们的方式的
pipelines.py
pipelines.py
models.py
导入类,我想从这里访问
。基本上,
Spider
返回一个项目,该项目通过
pipelines.py
传递,该过程对每个项目重复。在该文件结构中,您正试图访问
?我正试图访问
pipelines.py
中的
,而
domain
来自
classspider
中的
Spider.py
。您看到了吗?这意味着您即使在创建管道时也无法访问spider实例,更不用说在导入pipleine模块时了。您可能需要更深入地钻研Scrapy文档,以了解以什么顺序发生的事情,以及您实际可以/应该在什么时候访问spider对象。好的,这是有意义的。我要做的是在
domain
参数之后命名
modules.py
在MySQL中创建的表,但看起来我必须找到另一种方法。在该文件结构中,您试图访问
domain
的文件是哪个?我试图访问
pipelines.py中的
domain
,而
来自内的
类蜘蛛
myproject/
__init __.py
items.py
pipelines.py
settings.py
spiders/
    __init __.py
    spider.py