[英](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.