我有兩個蜘蛛A
和B
。 我需要調用它在蜘蛛settings.py文件中定義的函數從蜘蛛Scrapy調用一個函數設置
Project Name |--Project Name | |-- spiders | | |-- __init__.py | | |-- A.py | | |-- B.py | |-- __init__.py | |-- items.py | |-- pipelines.py | |-- settings.py
有settings.py中的函數,這是我需要從A.py和B.py來訪問近蜘蛛
settings.py
def revoke_ip():
logging.info('Revoking access')
。這是我從A.py嘗試:
def closed(self, reason):
logging.info('Spider terminating because of %s' % reason)
current_project_settings = get_project_settings()
revoke_ip_call = getattr(current_project_settings, "revoke_ip")
revoke_ip_call()
但是這件事情不工作,也不是什麼提到here
有什麼,我做錯了或任何其他方式做到這一點?
而我該如何調用撤銷函數settings.revoke()? 如果我從'scrapy crawl A'的外部'project name'文件夾中運行爬蟲,我得到一個錯誤'ImportError:No module named settings' – Vaulstein
這個東西部分地解決了我的問題,所以我打開了答案。謝謝! – Vaulstein
如果您從其他文件夾運行項目,則必須指定包含要使用的模塊的文件夾。您可以嘗試使用設置模塊的絕對路徑。不客氣,我希望它有幫助。 –