2016-07-04 8 views
0

anwendet Ich habe die Namen von externen Dateien in meiner Datei angegeben, die ich beim Start importieren möchte. Aber wenn ich es ausführe, bekomme ich den Fehler: AttributeError: 'MySpider' object has no attribute 'settings'. Wie importiere ich beim Start der Spinne?Scrapy: Wie man Einstellungen aus settings.py Datei

Der Code, den ich bisher habe, ist:

class MySpider(CrawlSpider): 

    name = 'MySpider' 

    def __init__(self, *args, **kwargs): 

     super(MySpider, self).__init__(*args, **kwargs) 

     self.crawl_behaviour = FileOps.get_crawl_behaviour(self.settings.attributes.get('CRAWL_BEHAVIOUR')) 

     self.rules = (

      Rule(LinkExtractor(allow=self.crawl_behaviour), follow=True), 

     ) 

Antwort

1

Das ist für mich gearbeitet.

from scrapy.conf import settings 


self.crawl_behaviour = settings['CRAWL_BEHAVIOUR'] 
0

können Sie wie folgt verwenden:

from scrapy import Spider 
from scrapy.utils.project import get_project_settings 

class MySpider(Spider): 
    name = "MySpider" 
    allowed_domains = ["example.com"] 
    start_urls = ['https://www.example.com/'] 

    def __init__(self, query='', *args, **kwargs): 
     super(MySpider, self).__init__(*args, **kwargs) 
     p_setting = get_project_settings() 
     self.start_urls = ['https://www.example.com'] 
     self.query = query 
     self.crawl_behavior = p_setting.get("CRAWL_BEHAVIOUR") 
Verwandte Themen