簡體   English   中英

(Python)在一個模塊中從__init__導入參數以在另一個模塊中使用?

[英](Python) Import argument from __init__ in one module for use in another?

我對Python真的很陌生,並且一直與Scrapy結合使用它來制作一些Web搜尋器。 從終端運行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

要么

variable = __import __ ('MyModule').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實例,則只能訪問domain

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM