5

CrawlSpider を継承するスパイダーを作成しました。

関数を使用する必要があり__init__ますが、常にこのエラーが発生します:

コード:

class mySpider(CrawlSpider):

 def __init__(self):
   super(mySpider, self).__init__()
     .....

これは私が得ているエラーです: KeyError スパイダーが見つかりません: mySpider.

関数がなくても__init__すべてが機能します

4

1 に答える 1

10

次のように配置する必要があります。

def __init__(self, *a, **kw):
    super(MySpider, self).__init__(*a, **kw)
    # your code here

作業例:

class MySpider(CrawlSpider):
    name = "company"
    allowed_domains = ["site.com"]
    start_urls = ["http://www.site.com"]

    def __init__(self, *a, **kw):
        super(MySpider, self).__init__(*a, **kw)
        dispatcher.connect(self.spider_closed, signals.spider_closed)

ここで init は、スパイダーでスクレイピー シグナルを登録するために使用されました。この例では、通常はパイプラインではなくスパイダーで必要でした。

于 2012-07-21T18:00:22.363 に答える