Ich habe zwei Spinnen A
und B
. Ich brauche eine Funktion aufzurufen, dieRufen Sie eine Funktion in den Einstellungen von Spider Scrapy
Project Name |--Project Name | |-- spiders | | |-- __init__.py | | |-- A.py | | |-- B.py | |-- __init__.py | |-- items.py | |-- pipelines.py | |-- settings.py
Es gibt eine Funktion in settings.py, die ich von A.py und B.py auf nahe zugreifen müssen Spinnen
settings.py
def revoke_ip():
logging.info('Revoking access')
Das ist, was ich von A.py versucht:
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()
Aber dieses Ding nicht funktioniert auch nicht, was here
erwähntGibt es etwas, was ich falsch oder andere Art und Weise, es zu tun tue?
Und wie rufe ich die Funktion widerrufen, settings.revoke()? Wenn ich den Crawler aus dem äußeren 'Projektnamen'-Ordner als 'scrapy crawl A' ausführen, erhalte ich eine Fehlermeldung' ImportError: Kein Modul namens settings' – Vaulstein
Dieses Ding löste mein Problem teilweise, also stimme ich der Antwort zu. Vielen Dank! – Vaulstein
Wenn Sie Ihr Projekt aus einem anderen Ordner ausführen, müssen Sie angeben, welcher Ordner das Modul enthält, das Sie verwenden möchten. Sie können versuchen, einen absoluten Pfad zum Einstellungsmodul zu verwenden. Gern geschehen, ich hoffe es hilft. –